2 #ifndef JAIABOT_CORE_SRC_LIB_CRC_CRC32_H
3 #define JAIABOT_CORE_SRC_LIB_CRC_CRC32_H
21 uint32_t polynomial = 0xEDB88320;
22 for (uint32_t i = 0; i < 256; i++)
25 for (
size_t j = 0; j < 8; j++)
29 c = polynomial ^ (c >> 1);
47 uint32_t c = initial ^ 0xFFFFFFFF;
48 const uint8_t* u =
static_cast<const uint8_t*
>(buf);
49 for (
size_t i = 0; i < len; ++i) { c = table[(c ^ u[i]) & 0xFF] ^ (c >> 8); }
50 return c ^ 0xFFFFFFFF;
uint32_t calculate_crc32(const void *buf, size_t len, uint32_t initial=0)
const CRC32Table crc32_table