【发布时间】:2021-08-07 14:57:24
【问题描述】:
我有两个函数来计算 CRC32:
1)
for (loop = 0u; loop < len; ++loop)
{
crc = lut[((uint8_t)(crc >> 24) ^ data[loop])] ^ (crc << 8u);
}
for (i = 0u; i < len; i++)
{
crc = lut[((uint32_t)data[i] ^ crc) & 0xFFu] ^ (crc >> 8u);
}
两者都可以计算出相同的结果,但是:
- 第二个的查找表具有不同字节序的值
- 计算后的结果也交换了字节序
问题是为什么会有两种不同的实现方式?是否有像第二个示例中那样用于计算的特定名称?
【问题讨论】:
标签: crc32