我正在尝试使用以下代码计算字符串中的奇偶校验位,我首先为字符串计算一个 parityByte,然后为该字节计算一个 parityBit,从我收集的内容来看,这些函数应该可以解决问题,但我现在是不太确定,我使用它们的程序失败了,如果是因为这些,或者我应该看看其他地方,我想现在。
char calculateParity(char *payload, int size){
char r = 0;
int i;
for(i = 0; i < size; i++){
r ^= payload[i];
}
return calcParityBit(r);
}
char calcParityBit(char x){
x ^= x >> 8;
x ^= x >> 4;
x ^= x >> 2;
x ^= x >> 1;
return x & 1;
}