我有一个字符串,它将二进制数字作为字符串
string = '0b100111'
我希望该值不是字符串类型而是值(伪代码)
bin(string) = 0b100111
任何pythoners知道一个简单的方法吗?
这是Codecademy的代码的所有部分:(在回答实施后)
def flip_bit(number,n):
if type(number)==type('s'):
number = int(number,2)
mask=(0b1<<n-1)
print bin(mask)
print mask
desired = bin(number^mask)
return desired
flip_bit('0b111', 2)
答案 0 :(得分:3)
如何使用基座int
调用2
函数?
>>>s = '0b100111'
>>>b = int(s, 2)
>>>print b
39
答案 1 :(得分:0)
你可以通过在引号前加一个b来使它成为二进制文件:
>>> s = b'hello'
>>> s.decode()
'hello'
答案 2 :(得分:0)
我担心在你的问题中将其理想化是不可能的。你想要的是一系列字符,它只能是一个字符串(或者你可以将它转换为整数)。但它仍然可以作为内置函数的数字 - 例如:
num1 = '0b0110'
num1 = '0b0101'
result = int(num1, 2) + int(num2, 2)
print(bin(result))
您的代码中唯一可以使用该synatx的方法是该二进制数字本身是否为名称。 Python仅支持对基数10中的数字进行操作,因为它只解释该格式的数字输入。否则,它是一个无法操纵数字的字符串。