def reverse_bits(decimal_num): # 将十进制数转换为二进制字符串,并去掉"0b" binary_str = bin(decimal_num & 0xFF)[2:] # 确保只取8位 # 使用零填充到8位 padded_binary_str = binary_str.zfill(8) # 颠倒二进制字符串 reversed_binary_str = padded_binary_str[::-1] return padded_binary_str def to_signed_decimal(binary_str): # 将二进制字符串转换为有符号十进制数 if binary_str[0] == '1': # 如果最高位是1,表示是负数 return int(binary_str, 2) - (1 << len(binary_str)) else: return int(binary_str, 2) def main(): # 输入三个十进制数 numbers = [] for i in range(1, 4): num = int(input(f"请输入第{i}字节小端数: ")) numbers.append(num) # 存储所有颠倒后的二进制结果 combined_binary = "" for num in numbers: reversed_bin = reverse_bits(num) combined_binary += reversed_bin print(f"合并后的颠倒二进制数: {combined_binary}") # 将合并后的二进制字符串转换为有符号十进制 signed_decimal = to_signed_decimal(combined_binary) print(f"合并后的颠倒二进制数对应的有符号十进制数: {signed_decimal}") print(f"电压值: {signed_decimal/8388607*2.5*4}") if __name__ == "__main__": main()