首页 > 代码库 > Python CRC16校验算法

Python CRC16校验算法

def crc16(x, invert):    a = 0xFFFF    b = 0xA001    for byte in x:        a ^= ord(byte)        for i in range(8):            last = a % 2            a >>= 1            if last == 1:                a ^= b    s = hex(a).upper()        return s[4:6]+s[2:4] if invert == True else s[2:4]+s[4:6]

示例:

print(crc16("012345678", True))
print(crc16("012345678", False))
print(crc16("010600010017", True))

计算结果:

技术分享

Python CRC16校验算法