使用Python zlib.crc32函数计算CRC

Chr*_*Row 0 python crc

我创建了一个大小为100的列表,并使用以下代码在python中使用8位数据填充数组,我想使用zlib.crc32()函数计算CRC值.

Init_RangenCrc8 = []
for i in range(0,100):
    Init_RangenCrc8.append(random.randrange(0, 255, 1))

crc8_python = zlib.crc32(Init_RangenCrc8, 0xFFFF) 
Run Code Online (Sandbox Code Playgroud)

当我返回并打印crc8_python时,我没有得到任何价值.

任何帮助将不胜感激,谢谢.

Mat*_*son 7

>>> help(zlib.crc32)
Help on built-in function crc32 in module zlib:

crc32(...)
    crc32(string[, start]) -- Compute a CRC-32 checksum of string.

    An optional starting value can be specified.  The returned checksum is
    a signed integer.
>>> zlib.crc32("".join(chr(random.randrange(0,255)) for _ in xrange(100)))
333158331
Run Code Online (Sandbox Code Playgroud)

编辑:使用起始值的代码0xFFFF:

>>> text = "".join(chr(random.randrange(0,255)) for _ in xrange(100))

>>> zlib.crc32(text)
-964269250

>>> zlib.crc32(text, 0xFFFF)
2057263175
Run Code Online (Sandbox Code Playgroud)

  • 第一个参数必须是字符串,因为这是API的定义方式.至于错误,你需要`import zlib`和`import random`才能使这个解决方案正常工作,这是给出你的描述的正确解决方案. (2认同)