2012-04-24 90 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", "") 

希望有所幫助。 〜本