vls*_*vls 4 c bit-manipulation parity
我的解决方案(对于输入块的每一位,都有这样一行):
*parity ^= (((x[0] >> 30) & 0x00000001) * 0xc3e0d69f);
Run Code Online (Sandbox Code Playgroud)
所有类型均为uint32。该行获取输入 x 的第二位,将其移位到 LSB并将所有其他位设置为零。然后,将 32 位奇偶校验与该位的相应奇偶校验集进行异或。
我发现这个乘法解决方案是执行条件异或的最快方法。有更快的方法吗?