我确实探索过Crcmod python库但不能使用它作为我的gen poly-0x1EDC6F41不被认为是32位多边形:(有没有办法调整它或任何其他我可以用来做这个的python库?
名称:“CRC-32C”
宽度:32
Poly:1EDC6F41h
初始值:FFFFFFFFh
RefIn:True
RefOut:True
XorOut:FFFFFFFFh
检查:E3069283h
这是我试过的 -
import crcmod
f = crcmod.mkCrcFun(0x1EDC6F41)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\Lib\site-packages\crcmod\crcmod.py", line 281, in mkCrcFun
(sizeBits, initCrc, xorOut) = _verifyParams(poly, initCrc, xorOut)
File "C:\Python27\Lib\site-packages\crcmod\crcmod.py", line 405, in _verifyParams
sizeBits = _verifyPoly(poly)
File "C:\Python27\Lib\site-packages\crcmod\crcmod.py", line 302, in _verifyPoly
raise ValueError(msg)
ValueError: The degree of the polynomial must be 8, 16, 24, 32 or 64
答案 0 :(得分:2)
通常指定CRC多项式没有最高有效位,它始终为1.但看起来crcmod库需要指定此位。所以你应该使用多项式0x11EDC6F41
。 (在左边添加1)。