如何在python中将数字作为二进制字符串返回,并设置一定数量的位

时间:2012-11-28 07:08:15

标签: python binary

可能是一个愚蠢的问题,但是在python中有一种简单的方法可以自动用零填充数字到固定长度吗?我无法在python文档中找到这个,但我可能看起来不够努力? E.I.我希望bin(4)返回00100而不是100.是否有一种简单的方法可以确保输出为6位而不是3位?

3 个答案:

答案 0 :(得分:11)

字符串有.zfill()方法用零填充它:

>>> '100'.zfill(5)
'00100'

但是对于二进制数,我会使用字符串格式:

>>> '{0:05b}'.format(4)
'00100'

:05b格式规范将传入的数字格式化为二进制,5位数,零填充。请参阅Python format string syntax。我在这里使用了str.format(),但built-in format() function可以使用相同的格式说明,减去{0:..}占位符语法:

>>> format(4, '05b')
'00100'

如果你觉得更容易。

答案 1 :(得分:3)

试试这个......

In [11]: x = 1

In [12]: print str(x).zfill(5)
00001

In [13]: bin(4)
Out[13]: '0b100'

In [14]: str(bin(4)[2:]).zfill(5)
Out[14]: '00100'

答案 2 :(得分:3)

这是format内置函数的作业:

>>> format(4, '05b')
'00100'