Python计算CRC含有负数
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值进行对比了。