crc16校验C语言实现
时间: 2023-08-24 22:05:00 浏览: 108
C语言实现CRC16校验.doc
以下是一个简单的CRC16校验C语言实现的示例代码:
```c
#include <stdint.h>
uint16_t crc16(uint8_t *data, uint16_t length)
{
uint16_t crc = 0xFFFF;
for (uint16_t i = 0; i < length; i++) {
crc ^= (uint16_t)data[i];
for (uint8_t j = 0; j < 8; j++) {
if (crc & 0x0001) {
crc >>= 1;
crc ^= 0xA001;
} else {
crc >>= 1;
}
}
}
return crc;
}
```
这个函数接受一个指向数据缓冲区的指针和数据长度,返回计算出的CRC16值。这个函数实现了标准的CRC-16-CCITT算法,使用了0xA001作为生成多项式,初始值为0xFFFF。
阅读全文