所以我需要将十进制转换为二进制,但我所有的返回值都需要是 8 位长。
我已经弄清楚了转换本身,但我需要弄清楚如果少于 8 位,如何在开头添加零。
old_number = int(input("Enter whole number here: "))
number = old_number
binary_translation = 0
while number > -1:
if number > 128 or number == 128:
binary_translation = binary_translation + 10000000
number = number - 128
elif number > 64 or number == 64:
binary_translation = binary_translation + 1000000
number = number - 64
elif number > 32 or number == 32:
binary_translation = binary_translation + 100000
number = number - 32
等等一直为零...
print("数字", old_number, "是", binary_translation, "二进制。")
如果 number = 39,我想要的结果 - 00100111
如果 number = 39 - 100111
,我得到的结果
最佳答案
TLDR:使用它:'{:0>8}'.format(str(bin(a))[2:])
您进行了不必要的二进制转换。 Python 有内置函数 bin()
可以为您完成此操作:
>>> number = 39
>>> bin(number)
'0b100111'
您可以裁剪它:
>>> str(bin(number))[2:]
'100111'
并添加前向零:
>>> '{:0>8}'.format(str(bin(a))[2:])
'00100111'
这是最后一句:'{:0>8}'.format(str(bin(a))[2:])
如果你想了解更多关于这个:'{:0>8}'
魔法,你可以阅读this文章。
关于python - 十进制转二进制,如何得到8位二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55754130/