crc校验算法c语言
时间: 2023-12-06 08:37:39 浏览: 93
CRC校验算法-C语言
5星 · 资源好评率100%
以下是一个简单的C语言实现CRC校验算法的例子:
```c
#include <stdio.h>
#include <stdint.h>
#define POLYNOMIAL 0xEDB88320
uint32_t crc32(uint8_t *data, uint32_t length)
{
uint32_t crc = 0xFFFFFFFF;
for (uint32_t i = 0; i < length; i++)
{
crc ^= data[i];
for (uint32_t j = 0; j < 8; j++)
{
if (crc & 1)
{
crc = (crc >> 1) ^ POLYNOMIAL;
}
else
{
crc >>= 1;
}
}
}
return ~crc;
}
int main()
{
uint8_t data[] = {0x01, 0x02, 0x03, 0x04, 0x05};
uint32_t crc = crc32(data, sizeof(data));
printf("CRC32: 0x%08X\n", crc);
return 0;
}
```
该例子实现了一个基于多项式0xEDB88320的CRC32校验算法。在main函数中,我们定义了一个长度为5的数据数组,并计算出它的CRC32校验值。最后,我们将CRC32校验值以16进制的形式输出到控制台。
阅读全文