我想弄清楚如何CRC16 XMODEM工作并为它编写代码。它将计算从3到18字节,并使用按钮调用,它将接受HEX值,然后以十六进制值显示结果。例如: 0x05 0x02 0xAA 0xAA -将是0x3430符合http://crccalc.com/ -这是正确的。但是如何用代码来实现这一点,请大家提供任何信息吗?
发布于 2018-02-07 05:31:30
unsigned crc16xmodem(unsigned crc, unsigned char const *data, size_t len) {
if (data == NULL)
return 0;
while (len--) {
crc ^= (unsigned)(*data++) << 8;
for (unsigned k = 0; k < 8; k++)
crc = crc & 0x8000 ? (crc << 1) ^ 0x1021 : crc << 1;
}
return crc & 0xffff;
}https://stackoverflow.com/questions/48636922
复制相似问题