我正试图让toBase10(101)
吐出5
。我还需要它为101以外的数字工作,我知道python中内置了一个二进制转换器,但我无法理解它。
现在我有
def toBase10(x):
int( 'x' , 2 ) == x
return x
我得到的错误无法使用显式基础转换非字符串。为什么我不能在这里使用x?
答案 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