我正在计算从整数到二进制数的转换错误。我输入了整数6并获得了二进制数字0。这肯定是错误的。你们可以帮忙吗?顺便说一下,我正在使用python 3。
def ConvertNtoBinary(n):
binaryStr = ''
if n < 0:
print('Value is a negative integer')
if n == 0:
print('Binary value of 0 is 0')
else:
if n > 0:
binaryStr = str(n % 2) + binaryStr
n = n > 1
return binaryStr
def main():
n = int(input('Enter a positive integer please: '))
binaryNumber = ConvertNtoBinary(n)
print('n converted to a binary number is: ',binaryNumber)
main()
最佳答案
这里的问题是:
n = n > 1
布尔比较“ n是否大于1?”。您可能想要的是n >> 1,将其移位n。
编辑:另外,您只执行一次此过程-我想您会在某些条件下执行此操作,例如
while n > 0:
EDIT2:John Machin的评论表是正确的,我修复了上面的内容以反映这一点。