Python:二进制计数,不使用内置函数

时间:2016-04-29 01:44:57

标签: python while-loop binary counting

我最近遇到了一些麻烦,创建了一个从1到所选数字的二进制计数程序。

这是我目前的代码:

num6 = 1
binStr = ''
num5 = input('Please enter a number to be counted to:')
while num5 != num6:
    binStr = str(num6 % 2) + binStr
    num6 //= 2

    num6 = num6 + 1

print(binStr)

例如,如果我输入5,则需要输入1,10,11,100,101。 我似乎无法掌握它。任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

问题在于您将num6与输入数量无关。你不需要计算你分数的次数,所以你可以将num5除以2并取余数。我把你的binary_to_string放在一个函数中,并为你的输入值调用每个数字:

num5 = int(input('Please enter a number to be counted to:'))
for i in range(num5 + 1):
    binStr = ""
    decimal_number = i
    while decimal_number > 0:
        binStr = str(decimal_number % 2) + binStr
        decimal_number //= 2
    print(binStr)