【问题标题】:Missing zeros when using .format() to make an integer to a binary使用 .format() 将整数转换为二进制时缺少零
【发布时间】:2015-06-23 08:39:24
【问题描述】:

所以我想在 Python 中将整数转换为二进制。 我发现this 的解释非常好,并在我的程序中使用了它。 由于后来我不得不使用二进制文件,所以我遇到了一些问题,并且看到格式发生了一些奇怪的事情。

当我的程序中有'{0:08b}'.format(6) 或将它输入到shell 中时,我得到:'00000110'。 但是当我用 16 位和 32 位尝试同样的事情时,没有显示零,我似乎无法使用它们。 喜欢:

>>> '{0:16b}'.format(6)
'             110'
>>> '{0:32b}'.format(6)
'                             110'

所以我想知道为什么会这样(我为自己和我的程序找到了另一种解决方案,但我仍然不知道为什么会这样!)

如果这个问题已经被问及并回答了,我很抱歉。我用谷歌搜索并试图在这里找到像我这样的问题,但没有成功。

【问题讨论】:

    标签: python string python-2.7 binary format


    【解决方案1】:

    08b 中的0 是格式规范的一部分。请参阅文档here。如果您想要零填充,请执行 '{0:016b}'.format(6)'{0:032b}'.format(6)

    【讨论】:

    • 天哪...我总是误读整件事,因为我认为必须使用两位数来表示位。 >.
    猜你喜欢
    • 2013-01-13
    • 1970-01-01
    • 2012-04-10
    • 2014-03-18
    • 2017-07-13
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    相关资源
    最近更新 更多