item = '04010034587C1F0C6D51B6D33B78CA63C1CC7E5910006C5600000000000000'
'%08X' % (binascii.crc32(binascii.a2b_hex(item)) & 0xffffffff)
我无法让 crc32 给我正确的 32 位。我尝试了几种不同的算法。 我一直在用这段代码得到'3228F9E4',但根据使用的另一个程序,正确的crc32应该是'E42FDBEC'。 多项式是'04C11DB7',初始余数是'00000000'。
如何正确计算?
特定的 CRC 影响由多项式、可选初始值和可能的最终 XOR 指定。位顺序也很重要。
binutils文档说:
计算 CRC-32,即数据的 32 位校验和,从初始 crc 开始。这与 ZIP 文件校验和一致
确保使用正确的初始值作为参考实现。(第 2 个参数crc32
(