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 Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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