I have been having some trouble recently with creating a program that counts in binary from 1 to the chosen number.
This is my code at the moment:
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)
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.
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)