【python】功能函数集合

业余 python 编码记录
实现 crc 数据校验功能
主要记录日常用到的函数实现基本功能

python基本功能函数集合

  • 1. 函数功能实现
    • 1.1 实现 crc 校验功能

1. 函数功能实现

1.1 实现 crc 校验功能

输入数组:dara = [0x01, 0x46, 0x00,0x00 ,0x00 ,0x01 ,0x02 ,0x00 ,0x00]
输出数组:data = [0x01, 0x46, 0x00,0x00 ,0x00 ,0x01 ,0x02 ,0x00 ,0x00 ,0x23 ,0x46]
其中,0x230x46 是校验位

函数实现:

def crc16Cal(datas):
    crc16=0xFFFF
    poly=0xA001
    for data in datas:
         #a=int(data,16)   若输入是字符形式,则用这个方式转为 int 类型
         #print(a)
         crc16 = data ^ crc16
         for i in range(8):
            if (crc16 & 1) == 1 :
                crc16 = crc16 >> 1
                crc16 = crc16 ^ poly
            else :
                crc16 = crc16 >> 1

    crc16=hex(int(crc16))      # 转化为 16进制显示 
    #crc16=crc16[2:].upper()   # 去掉 0x
    return crc16

函数测试

print("test python")
datas= [0x01, 0x46, 0x00,0x00 ,0x00 ,0x01 ,0x02 ,0x00 ,0x00]
print("input arry")
for i in datas :
  print(hex(i))
a = crc16Cal(datas) & 0x00ff
b = crc16Cal(datas) >> 8
datas.append(a)    # 向数组中追加元素
datas.append(b)  
print("output arry")
for i in datas :
  print(hex(i))
datas.pop()    # 将数组中的最后两个新加的元素 pop 出来,否则数组会原来越长
datas.pop()  

【python】功能函数集合_第1张图片
本部分参考:python实现crc16校验

你可能感兴趣的:(python,python,开发语言)