我正在尝试让这个函数工作,它应该把十进制转换为二进制,但它给我返回的数字都不正确。比如,如果我输入12,它会给我返回2。我不确定代码中的问题所在。希望能得到帮助,谢谢!
def decimalToBinary(value):
if value < 0: #Base case if number is a negative
return 'Not positive'
elif value == 0: #Base case if number is zero
return 0
else:
return decimalToBinary(value//2) + (value%2)
0xa
、0b1010
、0o12
、10
等)。输出是一个包含输入整数的二进制 ("01") 表示的字符串。 2- 如果输入为0
,请使用return '0'
而不是return 0
。 3- 使用raise ValueError('expected nonnegative integer')
而不是return 'Not positive'
,然后对于正整数n
,您可以使用to_bin = lambda n: to_bin(n//2) + '01'[n%2] if n else ''
。 - jfs