CRC32的C语言源代码。
static uint32_t crc32(uint8_t *buf, int len)
{
int i, j;
uint32_t crc, mask;
crc = 0xFFFFFFFF;
for (i = 0; i < len; i++) {
crc = crc ^ (uint32_t)buf[i];
for (j = 7; j >= 0; j--) { // Do eight times.
mask = -(crc & 1);
crc = (crc >> 1) ^ (0xEDB88320 & mask);
}
}
return ~crc;
}
05-13
04-09