def check_value(data: bytes) -> int: # 初始化crc为0xFFFF crc = 0xFFFF # 循环处理每个数据字节 for byte in data: # 将每个数据字节与crc进行异或操作 crc ^= byte # 对crc的每一位进行处理 for _ in range(8): # 如果最低位为1,则右移一位并执行异或0xA001操作(即0x8005按位颠倒后的结果) if crc & 0x0001: crc = (crc >> 1) ^ 0xA001 # 如果最低位为0,则仅将crc右移一位 else: crc = crc >> 1 # 返回最终的crc值 return crc def check(data: bytes) -> int: if len(data) < 2: return False # 初始化crc为0xFFFF crc = 0xFFFF # 循环处理每个数据字节 for byte in data: # 将每个数据字节与crc进行异或操作 crc ^= byte # 对crc的每一位进行处理 for _ in range(8): # 如果最低位为1,则右移一位并执行异或0xA001操作(即0x8005按位颠倒后的结果) if crc & 0x0001: crc = (crc >> 1) ^ 0xA001 # 如果最低位为0,则仅将crc右移一位 else: crc = crc >> 1 # 返回最终的crc值 if crc == 0 : return True return False