gpt4 book ai didi

从 C 中的字符串计算奇偶校验位

转载 作者:行者123 更新时间:2023-11-30 18:12:54 26 4
gpt4 key购买 nike

我正在尝试使用以下代码计算字符串中的奇偶校验位。我首先计算字符串的奇偶校验字节,然后计算该字节的奇偶校验位。

根据我收集的信息,这些函数应该可以解决问题,但现在我不太确定。我使用它们的程序失败了,我想知道是否是因为这些,或者我是否应该看看其他地方。

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;
}

最佳答案

Bit Twiddling Hacks 的帮助下

char calcParityBit (unsigned char v)
{
return (0x6996u >> ((v ^ (v >> 4)) & 0xf)) & 1;
}

这是 5 次操作与 7 次操作(在采纳 @squeamish ossifrage 的好建议之后)。

关于从 C 中的字符串计算奇偶校验位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29379006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com