Python 整数到二进制转换

Python 整数到二进制转换,python,binary,integer,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:

我计算从整数到二进制数的转换时出错了。我输入了整数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()
def转换器二进制文件(n):
binaryStr=''
如果n<0:
打印('值为负整数')
如果n==0:
打印('0的二进制值为0')
其他:
如果n>0:
binaryStr=str(n%2)+binaryStr
n=n>1
返回二进制str
def main():
n=int(输入('请输入一个正整数:'))
binaryNumber=ConvertNtoBinary(n)
打印('n转换为二进制数为:',binaryNumber)
main()
这里的问题是:

n = n > 1
这将执行布尔比较“n是否大于1?”。您可能想要的是n>>1,它将n位移位

编辑:而且,你只做了一次这个过程-我想你会想在某些条件下做,比如

while n > 0:

EDIT2:John Machin的注释表单是正确的,我修正了上面的内容以反映这一点。

内置函数“bin”如何


包括电池

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

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

我想我明白了。6是否转换成二进制,110?事实上它是:(2^0)*0+(2^1)*1+(2^2)*1=2+4=6你的意思是
n>>1
n>>2
除以4我假设你这样做要么是作为家庭作业,要么是为了自己的享受/锻炼,这很好。如果您只是想要一些有效的东西,请使用内置函数
bin()
。(您可能需要从结果中去掉前导的
0b
,具体取决于您的目的。)
>>> bin(4711)
'0b1001001100111'