Python学习笔记之CRC16的移植

CRC_TA16 = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
            0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef]

def crc16(p_Data):
    crc = 0
    for x in p_Data:
        da = ((crc >> 8) & 0xFF) >> 4
        crc <<= 4
        crc ^= CRC_TA16 [da ^ (x >> 4)]
        da = ((crc >> 8) & 0xFF) >> 4
        crc <<= 4
        crc ^= CRC_TA16 [da ^ (x & 0x0f)]

    return crc & 0xffff

此处只是抛砖引玉作用;另外Python自库有crc16,是由Google维护的;以及有第三方提供的pycrc库,都可以自行引用;

猜你喜欢

转载自blog.csdn.net/xsophiax/article/details/89679202