2012-04-24 192 views
-1

如何将'0'值的数量添加到现有二进制类型的左侧?向二进制添加'0'

IM通过使用以下获得的二进制类型:

binary=bin(int(symbol)) 

其中symbol是int。

有没有办法做到这一点?

我想结果是一个字符串。

+0

你想结果号码是二进制类型? – 2012-04-24 23:51:11

+0

不,我希望它是一个字符串 – Itzik984 2012-04-24 23:51:31

+0

然后只使用连接,因为bin()返回一个字符串对象。 – 2012-04-24 23:52:55

回答

7

没有二进制类型,结果bin()是一个字符串。这里是你可以添加额外的零到字符串的结尾:像你要添加的零的左边,我假设你正在做这使得所得

>>> bin(11) 
'0b1011' 
>>> bin(11) + '0000' 
'0b10110000' 

因为它听起来不管symbol的值如何,字符串的长度都是相同的。

这样做的一个好方法是使用str.format()代替bin()功能,这里是一个例子,其中总有八位得到的字符串中,和0b前缀仍然存在,如果你使用过bin()

>>> '0b{0:0>8b}'.format(3) 
'0b00000011' 
>>> '0b{0:0>8b}'.format(11) 
'0b00001011' 
+0

我希望它在左侧,但我想它的obvios如何做到这一点 – Itzik984 2012-04-24 23:50:20

0

不完全确定你想要什么,在其中加'0'。

print bin(1<<8) 
print bin(1).zfill(8).replace("b", "") 

希望有所帮助。 〜本