-1

toBase10(101)想吐出来5。我还需要它来处理除 101 之外的数字,我知道 python 中内置了一个二进制转换器,但我无法弄清楚。

现在我有

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

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

4

3 回答 3

0
def toBase10(x):
    return int(x, 2)
于 2012-11-09T21:33:10.083 回答
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))
于 2021-04-05T18:59:11.823 回答
-1

尝试

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

那么你可以传递字符串或整数

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

我认为 int cast 错误是因为您传入的是数字而不是字符串,尽管这看起来很奇怪 --> "int( x , 2 ) == x"

于 2012-11-09T21:34:36.813 回答