CRC-16/CCITT的C语言实现
时间: 2023-12-28 15:03:28 浏览: 258
CRC16-CCITT C语言实现函数
很高兴为您解答,以下是CRC-16/CCITT的C语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
uint16_t crc16_ccitt(const void *buf, int len)
{
const uint8_t *data = buf;
uint16_t crc = 0xFFFF;
while (len--)
{
crc ^= *data++;
for (int i = 0; i < 8; i++)
{
if (crc & 1)
crc = (crc >> 1) ^ 0x8408;
else
crc = crc >> 1;
}
}
return crc;
}
int main()
{
uint8_t msg[] = {0x12, 0x34, 0x56, 0x78};
uint16_t crc = crc16_ccitt(msg, sizeof(msg)/sizeof(msg[0]));
printf("CRC16/CCITT is: %0X\n", crc);
return 0;
}
```
如果您有其他问题,欢迎继续提问。
阅读全文