帮我用C语言写一个函数,要求实现CRC16校验
时间: 2023-05-17 13:03:31 浏览: 110
C语言实现CRC16校验
好的,以下是一个用C语言实现CRC16校验的函数:
```c
#include <stdint.h>
uint16_t crc16(uint8_t *data, uint32_t length) {
uint16_t crc = 0xFFFF;
uint8_t x;
while (length--) {
x = crc >> 8 ^ *data++;
x ^= x >> 4;
crc = (crc << 8) ^ ((uint16_t)(x << 12)) ^ ((uint16_t)(x << 5)) ^ ((uint16_t)x);
}
return crc;
}
```
这个函数接受一个指向数据的指针和数据长度作为参数,返回一个16位的CRC校验值。
阅读全文