C++实现CRC16-IBM的代码
时间: 2024-05-05 16:19:53 浏览: 88
C语言版本CRC16源码
4星 · 用户满意度95%
以下是C语言实现CRC16-IBM校验的代码:
```c
#include <stdio.h>
unsigned short crc16_ibm(char *data, int length)
{
unsigned short crc = 0;
int i, j;
for (i = 0; i < length; i++) {
crc ^= (unsigned short)data[i] << 8;
for (j = 0; j < 8; j++) {
if (crc & 0x8000) {
crc = (crc << 1) ^ 0x8005;
} else {
crc <<= 1;
}
}
}
return crc;
}
int main()
{
char data[] = {0x01, 0x02, 0x03, 0x04, 0x05};
int length = sizeof(data) / sizeof(char);
unsigned short crc = crc16_ibm(data, length);
printf("CRC16-IBM: 0x%04X\n", crc);
return 0;
}
```
其中,`crc16_ibm`函数接收一个`char`类型的数据指针和数据长度,计算出校验码并返回。`main`函数中演示了如何使用该函数进行CRC16-IBM校验。
阅读全文