位运算计算奇偶校验的最快方法是什么?

vls*_*vls 4 c bit-manipulation parity

我的解决方案(对于输入块的每一位,都有这样一行):

*parity ^= (((x[0] >> 30) & 0x00000001) * 0xc3e0d69f);
Run Code Online (Sandbox Code Playgroud)

所有类型均为uint32。该行获取输入 x 的第二位,将其移位到 LSB并将所有其他位设置为零。然后,将 32 位奇偶校验与该位的相应奇偶校验集进行异或。

我发现这个乘法解决方案是执行条件异或的最快方法。有更快的方法吗?

The*_*aul 5

请参阅并行计算奇偶校验,了解一些用于计算字、字节等奇偶校验的巧妙技巧。