我正在尝试将字符串转换为二进制整数:
string = "0b011"
i = int(string)
但是这段代码引发了一个ValueError
. 但是,以下代码可以正常工作:
i = int(0b011)
但是在这里我传递了一个二进制文字,而不是一个字符串。如何转换字符串?
我正在尝试将字符串转换为二进制整数:
string = "0b011"
i = int(string)
但是这段代码引发了一个ValueError
. 但是,以下代码可以正常工作:
i = int(0b011)
但是在这里我传递了一个二进制文字,而不是一个字符串。如何转换字符串?
试试这个代码:
string = '0b011'
i = int(string, 2) # value of i is 3
它使用内置过程int()和可选的 base 参数,该参数指示要在转换中使用的基础 - 在本例中为两个,来自文档:
base 参数给出转换的基数(默认为 10),可以是 [2, 36] 范围内的任何整数或零。如果 base 为零,则根据 string 的内容确定正确的基数;解释与整数文字相同。
使用第二个可选参数(base),告诉int()
字符串是base 2
:
int(str[,base])
>>> string = "0b011"
>>> int(string,2)
3
>>> from ast import literal_eval
>>> literal_eval("0b011")
3