我正在计算从整数到二进制数的转换错误。我输入了整数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的评论表是正确的,我修复了上面的内容以反映这一点。

08-16 23:37