我已经有(二进制)矩阵表示由uint64_t(从C++ 11)。我希望能够从任何专栏有效地映射到第一级。例如C++映射矩阵列进行排序 - 位操作
0 1 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
uint64_t matrice = 0x4040400040400040uLL;
uint64_t matrice_2 = map(matrice, ColumnEnum::Column2);
1 1 1 0 1 1 0 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
matrice_2包含0xED00000000000000LL;
为什么不只是...迭代并做到这一点?你有尝试过什么吗? – Xymostech
最简单的解决方案将由uint8_t迭代uint8_t,并通过逻辑和适当的掩码检查第7位(本例中),并生成输出矩阵。但我怀疑这是否是最好的解决方案。 – Dejwi