Python计算CRC含有负数

Published: Tags:

PS:据说这个问题在Python 3.x以上的版本并不存在~

在Python中计算CRC有两个库,一个是binascii,另外一个是zlib,两者计算出来的CRC值域为 [-2^31, 2^31-1] 的有符号整数。 而通常我们所使用的是无符号整数类型,所以需要对计算得到的CRC值和0xffffffff这个数值进行操作来修正这个问题。

import zlib #换用binascii也可以
crc = zlib.crc32('测试') & 0xffffffff
print crc

这样运算后得到的CRC值,即可用于和C语言或其他语言计算出来的CRC值进行对比了。