我正在尝试实现一个 8 位 fletcher 校验和函数。
我的数据总是 17 字节长。
我从Remake of Fletcher checksum from 32bit to 8 的代码开始
这是我最终拥有的:
// 8-bit Fletcher checksum
// data is always 17 byte long
uint8_t fletcher(uint8_t *data) {
uint8_t sum1 = 0x0f, sum2 = 0x0f, len = 17;
while(len) {
sum1 += *data++;
sum2 += sum1;
sum1 = (sum1 & 0x0f) + (sum1 >> 4);
sum2 = (sum2 & 0x0f) + (sum2 >> 4);
len--;
}
sum1 = (sum1 & 0x0f) + (sum1 …
Run Code Online (Sandbox Code Playgroud)