采样的是python 的crcmod模块,安装就不说了,直接pip就好了。
import crcmod.predefined
from binascii import unhexlify
crc16_xmodem = crcmod.mkCrcFun(0x11021, rev=False, initCrc=0x0000, xorOut=0x0000)
s0 = 'a731986b1500087f9206e82e3829fe8bcffed5555efd00a100980000010000000100000009010013bb1d001e287107009b3000000300000088330000f427500077026309'
print hex(crc16_xmodem(unhexlify(s0)))
s0 = '1122334455'
print "crc16_xmodem:",hex(crc16_xmodem(unhexlify(s0)))
crc16_ibm = crcmod.mkCrcFun(0x18005, rev=True, initCrc=0x0000, xorOut=0x0000)
print "crc16_ibm",hex(crc16_ibm(unhexlify(s0)))
s = unhexlify('a731986b1500087f9206e82e3829fe8bcffed5555efd00a100980000010000000100000009010013bb1d001e287107009b3000000300000088330000f427500077026309')
print hex(crc16_xmodem(s))
crc16 = crcmod.predefined.Crc('xmodem')
crc16.update(s)
print crc16.hexdigest()
本文介绍如何使用Python的crcmod模块进行CRC16校验计算,包括crc16_xmodem和crc16_ibm两种常见算法,并展示了具体的代码实现。

1973

被折叠的 条评论
为什么被折叠?



