使用 .format() 将整数转换为二进制时缺少零

Missing zeros when using .format() to make an integer to a binary

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

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

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

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

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

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