从字符串对象转换为二进制值python

时间:2014-02-22 23:50:38

标签: python string binary

我有一个字符串,它将二进制数字作为字符串

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)

3 个答案:

答案 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中的数字进行操作,因为它只解释该格式的数字输入。否则,它是一个无法操纵数字的字符串。