This repository has been archived on 2025-04-28. You can view files and clone it, but cannot push or open issues or pull requests.
CMS3in1/1.Cabin/4.MISC/ADS1278_manualclock/ads1278.py

39 lines
1.4 KiB
Python
Raw Normal View History

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