Python CRC16 代码实现

1 装一个 16 位寄存器,所有数位均为 1。
2 取被校验串的一个字节与 16 位寄存器的高位字节进行“异或”运算。运算结果放 入这个 16 位寄存器。
3 把这个 16 寄存器向右移一位。
4若向右标记位移出的数位是1,则生成多项式1010 0000 0000 0001和这个寄 存器进行“异或”运算;若向右移出的数位是 0,则返回3。
5 重复3和4,直至移出 8 位。
6 取被校验串的下一个字节
7 重复3~6,直至被校验串的所有字节均与 16 位寄存器进行“异或”运算,并移位8次。
8 这个 16 位寄存器的内容即 2 字节 CRC 错误校验码。

def crc16x: b = 0xA001 a = 0xFFFF for byte in x: a ^= ordbyte for i in range8: last = a % 2 a >>= 1 if last == 1: a ^= b print hexa

有什么地方错误的吗?

发表评论

电子邮件地址不会被公开。 必填项已用*标注