crc校验码拿c语言写
时间: 2024-10-13 07:09:35 浏览: 21
在C语言中,你可以使用标准库函数`crc32()`来进行CRC-32校验。CRC-32是最常用的CRC校验算法之一,其返回值是一个32位的整数。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
uint32_t crc32(const uint8_t *data, size_t len, uint32_t initial_crc) {
static const uint32_t POLYNOMIAL = 0xedb88320; // CRC-32 polynomial in reversed form
for (size_t i = 0; i < len; ++i) {
initial_crc ^= data[i];
for (int j = 0; j < 8; ++j)
if ((initial_crc & 1) != 0)
initial_crc = (initial_crc >> 1) ^ POLYNOMIAL;
else
initial_crc >>= 1;
}
return initial_crc;
}
// 示例
int main() {
char data[] = "Hello, World!";
uint32_t input_crc = crc32(data, strlen(data), 0); // 使用默认初始校验码0
printf("CRC-32 check sum: %u\n", input_crc);
return 0;
}
```
这个例子展示了如何计算字符串"Hello, World!"的CRC-32校验码。你需要根据实际需求调整初始校验码(`initial_crc`)和生成多项式(`POLYNOMIAL`)。
阅读全文