用c语言完成通用的CRC16校验算法程序
时间: 2023-05-17 12:07:34 浏览: 155
以下是一个通用的CRC16校验算法程序,使用C语言编写:
```c
#include <stdio.h>
#include <stdint.h>
uint16_t crc16(uint8_t *data, uint32_t length) {
uint16_t crc = 0xFFFF;
uint8_t i;
while (length--) {
crc ^= *data++;
for (i = 0; i < 8; i++) {
if (crc & 0x0001) {
crc = (crc >> 1) ^ 0xA001;
} else {
crc = crc >> 1;
}
}
}
return crc;
}
int main() {
uint8_t data[] = {0x01, 0x02, 0x03, 0x04, 0x05};
uint16_t crc = crc16(data, sizeof(data));
printf("CRC16: 0x%04X\n", crc);
return 0;
}
```
这个程序可以计算任意长度的数据的CRC16校验值。你可以将要计算的数据存储在一个数组中,然后将数组的指针和长度传递给crc16函数,它将返回CRC16校验值。
阅读全文