|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- def crc16(self, strbuf, lenth):
- result = 0
- tempcrc16 = 0
- tempdata = 0
- for m in range(lenth):
- result = result & 0xFFFF
- tempcrc16 = (tempcrc16 & 0xFFFF)
- tempdata = (tempdata & 0xFFFF) 
- tempcrc16 = (((result >> 8) ^ strbuf[m]) & 0xFFFF)
- tempdata = (tempcrc16 << 8)
- tempcrc16 = 0
- for n in range(8):
- if ((tempdata ^ tempcrc16) & 0x8000):
- tempcrc16 = (((tempcrc16 << 1)) ^ 0x1021)
- else:
- tempcrc16 = (tempcrc16 << 1)
- tempdata = (tempdata << 1)
- # print(tempcrc16)
- result = ((result << 8) ^ tempcrc16)
- return result
- buf = [0x06,0xaa,0x02,0x01]
- print(crc16(buf ,len(buf))) #6695815
复制代码
第七行: result = result & 0xFFFF 的意思是对两个数字进行十六进制的按位与运算,但是报错语法无效,python3,向各位大佬求助 |
|