| 12345678910111213141516171819 |
- s = "FC0A08202302270924297450000100"
- def calculate_crc(cmdString):
- CRCCode = 0
- try:
- # 将字符串拆分成为16进制字节数据然后两位两位进行异或校验
- for i in range(1, len(cmdString) // 2):
- cmdHex = cmdString[i * 2: i * 2 + 2]
- if i == 1:
- cmdPrvHex = cmdString[(i - 1) * 2: i * 2]
- CRCCode = int(cmdPrvHex, 16) ^ int(cmdHex, 16)
- else:
- CRCCode = CRCCode ^ int(cmdHex, 16)
- except Exception as ex:
- pass
- return hex(CRCCode)[2:].upper().zfill(2) # 返回16进制校验码
- print(s + calculate_crc(s))
|