如何将二进制字符串转换为其等效数字?

时间:2012-11-09 21:23:03

标签: python-3.x

我正试图让toBase10(101)吐出5。我还需要它为101以外的数字工作,我知道python中内置了一个二进制转换器,但我无法理解它。

现在我有

def toBase10(x):
    int( 'x' , 2 ) == x
    return x

我得到的错误无法使用显式基础转换非字符串。为什么我不能在这里使用x?

3 个答案:

答案 0 :(得分:0)

def toBase10(x):
    return int(x, 2)

答案 1 :(得分:0)

我将整数转换为字符串,然后转换为二进制,我可以轻松地将其转换为整数:

def binaryconvert(x): 
    x = str(x) 
    binarynumber = int(x, base=2)
    convertnumber = int(binarynumber)
return convertnumber

print(binaryconvert(101))
#the answer would be 5

如果您的输入已经是二进制的,还有另一种方法:

def binaryconvert(x):
    convertnumber = int(x)
    return convertnumber

x = int(input("Input: "),2)
print(binaryconvert(x))

答案 2 :(得分:-1)

尝试

def toBase10(item):
     return int(str(item),2)

然后你可以传递字符串或int

    print toBase10(101)
    print toBase10('101')

我认为int cast错误是因为你传入的数字不是字符串,虽然这看起来很奇怪 - > “int(x,2)== x”too