C语言实现CRC32算法
本文将使用C语言完成CRC32算法的实现;
C语言crc32算法
#include <inttypes.h>
#include <stdio.h>
uint32_t crc32(const char* s){
uint32_t crc = 0xffffffff;
size_t i = 0;
while (s[i] != '\0')
{
uint8_t byte = s[i];
crc = crc ^ byte;
for (uint8_t j = 8; j > 0; --j)
{
crc = (crc >> 1) ^ (0xEDB88320 & (-(crc & 1)));
}
i++;
}
return crc ^ 0xffffffff;
}
int main(){
printf("%" PRIu32 "\n", crc32("hello world"));//222957957
printf("%" PRIx32 "\n", crc32("hello world"));//d4a1185
return 0;
}
运行效果
对字符串"hello world"进行CRC32运算的结果如下:
222957957 d4a1185