为什么计算一个数字奇偶校验的代码可以平行运行**?

时间:2012-06-10 15:44:25

标签: parallel-processing bit-manipulation

我正在研究按位操作。

但是,我不明白为什么他们声称代码是并行运行的。

并行计算奇偶校验

unsigned int v;  // word value to compute the parity of
v ^= v >> 16;
v ^= v >> 8;
v ^= v >> 4;
v &= 0xf;
return (0x6996 >> v) & 1;

我复制了代码 http://graphics.stanford.edu/~seander/bithacks.html#ParityParallel

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:5)

计算32位字奇偶校验的简单顺序方法将采用(顺序)32次操作。该方法是并行(或“矢量化”),因为它一次操作许多位。第一行v ^= v >> 16将16个高位与16个低位组合在一条指令中。