Files
H100PowerManger/test/tools/bitShow.py
T
2025-07-02 16:20:36 +08:00

37 lines
1.2 KiB
Python

def bit_viewer(input_data):
try:
# 定义 ANSI 转义序列颜色代码
RED = '\033[91m'
GREEN = '\033[92m'
RESET = '\033[0m'
# 尝试将输入转换为十进制整数
if input_data.startswith('0x'):
num = int(input_data, 16)
else:
num = int(input_data)
# 将整数转换为二进制字符串,去除前缀 '0b',并补全到 32 位
binary_str = format(num, '032b')
result = []
for i in range(32):
bit = binary_str[i]
# 根据位的值选择不同颜色
if bit == '1':
colored_bit = RED + bit + RESET
else:
colored_bit = GREEN + bit + RESET
result.append(f"Bit {31 - i}: {colored_bit}")
return "\n".join(result)
except ValueError:
return "输入无效,请输入有效的十进制或十六进制数。"
if __name__ == "__main__":
while True:
user_input = input("请输入十进制或十六进制数据(十六进制以 0x 开头),输入 'q' 退出:")
if user_input.lower() == 'q':
break
result = bit_viewer(user_input)
print(result)