在Python中将字符串转换为二进制整数

时间:2012-05-29 00:38:31

标签: python

我正在尝试将字符串转换为二进制整数:

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

但是这段代码提出了ValueError。但是,以下代码可以正常工作:

i = int(0b011)

但是在这里我传递了二进制文字,而不是字符串。如何转换字符串?

3 个答案:

答案 0 :(得分:3)

试试这段代码:

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

它使用内置过程int()和可选的base参数,该参数指示转换中使用的基数 - 在本例中为两个,来自文档:

  

base参数给出转换的基数(默认为10),可以是[2,36]或0范围内的任何整数。如果base为零,则根据string的内容确定正确的基数;解释与整数文字相同。

答案 1 :(得分:2)

使用第二个可选参数(base)告诉int()该字符串是base 2

int(str[,base])

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

答案 2 :(得分:2)

>>> from ast import literal_eval
>>> literal_eval("0b011")
3