2

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

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

但是这段代码引发了一个ValueError. 但是,以下代码可以正常工作:

i = int(0b011)

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

4

3 回答 3

3

试试这个代码:

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

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

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

于 2012-05-29T00:41:19.547 回答
2

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

int(str[,base])

>>> string = "0b011"
>>> int(string,2)
3
于 2012-05-29T00:40:27.420 回答
2
>>> from ast import literal_eval
>>> literal_eval("0b011")
3
于 2012-05-29T01:04:20.433 回答