python - 十进制转二进制,如何得到8位二进制?

标签 python binary decimal

所以我需要将十进制转换为二进制,但我所有的返回值都需要是 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/

相关文章:

python - 在Python中将字符串转换为十进制

ruby - 通过 ADO 连接将十进制值添加到 excel

python - 从列表值中获取所有组合

assembly - 不使用 MOVZX/MOVSX 的汇编中的零/符号扩展

c# - 我想在 2 字节数组之间有一个扩展方法 "Equals"

python - 写入文件夹时文件更改

python - 使用 Python 和 Angular(或 Django 或其他)的离线桌面 Web 应用程序

python - 将 Jinja2 与 Django 一起使用,加载标签不起作用

python - 从头开始切割字符串

javascript 函数 Math.pow 从输入文本中获取十进制值