2012-05-29 72 views
2

我試圖將字符串轉換成二進制整數將字符串轉換二進制整數在Python

string = "0b011" 
i = int(string) 

但這代碼引起了ValueError。但是,下面的代碼工作正常:

i = int(0b011) 

但在這裏我通過一個二進制文字,而不是一個字符串。如何轉換字符串?

回答

3

試試這個代碼:

string = '0b011' 
i = int(string, 2) # value of i is 3 

它使用內置的程序int()與可選的基本參數,表示在轉換中使用的基準 - 在這種情況下爲兩個,從文檔:

基本參數給出了轉換的基數(默認爲10),可以是範圍[2,36]或零中的任何整數。如果基數爲零,則根據字符串的內容確定合適的基數;解釋與整數文字相同。

2

使用第二個可選的參數(基地),告訴int()該字符串的base 2

int(str[,base]) 

>>> string = "0b011" 
>>> int(string,2) 
3 
+0

第二個參數做了什麼? –

2
>>> from ast import literal_eval 
>>> literal_eval("0b011") 
3 
相關問題