Python:不使用内置函数的二进制计数 [英] Python: Binary Counting without using inbuilt functions
问题描述
最近,我在创建一个从1到所选数字的二进制数的程序时遇到了一些麻烦.
I have been having some trouble recently with creating a program that counts in binary from 1 to the chosen number.
这是我目前的代码:
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. 我似乎无法理解它.任何帮助将不胜感激,谢谢.
For example, if I input 5, it needs to go 1, 10, 11, 100, 101. I just can't seem to get the hang of it. Any help will be appreciated, thanks.
推荐答案
问题是您要分割num6,这与输入数字无关.您无需记数除法的次数,因此您可以将num5除以2,然后取余数.我将您的binary_to_string放在函数内,并为每个数字调用它作为您的输入值:
The issue is that you're dividing num6 which has nothing to do with the input number. You don't need to keep count of how many times you divide so you can just divide num5 by two and take the remainder. I put your binary_to_string inside of a function and call it for each number to your input value:
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)
这篇关于Python:不使用内置函数的二进制计数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!