crc16算法c语言代码 baad
时间: 2023-10-03 10:00:44 浏览: 138
crc16是一种常用的差错校验算法,它可以用于检测数据传输过程中可能发生的位错误。下面是一个用C语言编写的CRC16算法代码示例。
```c
#include <stdio.h>
#include <stdint.h>
uint16_t crc16(const uint8_t *data, size_t length)
{
uint16_t crc = 0xFFFF;
size_t i;
while (length--)
{
crc ^= *data++;
for (i = 0; i < 8; i++)
{
if (crc & 1)
{
crc >>= 1;
crc ^= 0xA001;
}
else
{
crc >>= 1;
}
}
}
return crc;
}
int main()
{
uint8_t data[] = {0xBA, 0xAD};
uint16_t crc = crc16(data, sizeof(data));
printf("CRC16: 0x%04X\n", crc);
return 0;
}
```
以上的代码会计算给定数据的CRC16校验值,并将结果打印出来。data数组中的数据[0xBA, 0xAD]为例,通过crc16函数计算其CRC16校验值,最终输出结果0x4E77。
阅读全文