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))