我确实研究过Crcmod python库,但是不能使用它,因为我的gen poly-0x1EDC6F41不被认为是一个32位poly:(有什么方法可以调整它或任何其他python库,我可以用它来做这件事?在
名称:“CRC-32C”
32:宽度
聚乙烯:1EDC6F41h
初始化:ffffffff h
RefIn:对
重新引出:真
xRout:FFFFFFFF H
支票: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
通常CRC多项式没有指定最高有效位,它总是1。但是看起来crcmod库希望指定这个位。所以你应该使用多项式
0x11EDC6F41
。(在左侧添加1)。在相关问题 更多 >
编程相关推荐