整数到二进制转换

时间:2012-03-13 19:56:38

标签: python binary integer

我正在计算从整数到二进制数的转换错误。我输入了整数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()

4 个答案:

答案 0 :(得分:3)

这里的问题是:

n = n > 1

这是布尔比较“是否大于1?”。你可能想要的是n&gt;&gt; 1,哪个位移n。

编辑:此外,你只是做了一次这个过程 - 我想你会想要在某些条件下做这件事,比如

while n > 0:

EDIT2:John Machin的评论表格是正确的,我修正了上述内容以反映这一点。

答案 1 :(得分:0)

内置函数“bin”怎么样?

>>> bin(4711)
'0b1001001100111'

包括电池!

答案 2 :(得分:0)

这取决于你在做什么,但执行此操作的Python函数是bin()。如果要将转换为二进制文件,可以执行bin(numbertoconvert)。如果要从二进制转换,可以执行int(numbertoconvert, 2)int()对其使用的基础采用可选参数。要从bin()获取常规二进制数,您可以执行int(bin(numbertoconvert)[2:])

答案 3 :(得分:0)

这里的问题是if n>0应该是一个while循环,而不是if语句。