为什么我的十进制转二进制程序以 table 格式向后返回值?
Why is my decimal to binary program returning the value backwards and in a table format?
我正在使用 python 3.5.2 制作这个程序。它应该取任何十进制数并将其转换为二进制数。
number = int(input('Enter a number in base 10: '))
base2 = ''
while(number > 0):
rem = number % 2
number = number // 2
base2 = srt(number) + str(rem)
print(rem)
#This was to prevent the end text from sticking to the print
input('\nEnter to end')
它 returns 正确的值,但倒退并在一列中,我不知道为什么。
您的代码将剩余数字的最低位打印在不同的行上,因此您看到它们的顺序是相反的。您可以更改代码以将位存储到数组中,然后在循环后以相反的顺序打印它们:
number = int(input('Enter a number in base 10: '))
base2 = []
while(number > 0):
base2.append(str(number % 2))
number = number // 2
print(''.join(reversed(base2)))
Python 也有内置方法 bin
可以为你做转换:
>>> bin(10)
'0b1010'
对您的代码进行一些修改:
number = int(input('Enter a number in base 10: '))
base2 = ''
while(number > 0):
rem = number % 2
number = number // 2 # can be number //= 2, or number >>= 1
base2 += str(rem)
#print(rem) # no need to print
print(base2[::-1])
或更简单:
base2 = bin(number)[2:]
我正在使用 python 3.5.2 制作这个程序。它应该取任何十进制数并将其转换为二进制数。
number = int(input('Enter a number in base 10: '))
base2 = ''
while(number > 0):
rem = number % 2
number = number // 2
base2 = srt(number) + str(rem)
print(rem)
#This was to prevent the end text from sticking to the print
input('\nEnter to end')
它 returns 正确的值,但倒退并在一列中,我不知道为什么。
您的代码将剩余数字的最低位打印在不同的行上,因此您看到它们的顺序是相反的。您可以更改代码以将位存储到数组中,然后在循环后以相反的顺序打印它们:
number = int(input('Enter a number in base 10: '))
base2 = []
while(number > 0):
base2.append(str(number % 2))
number = number // 2
print(''.join(reversed(base2)))
Python 也有内置方法 bin
可以为你做转换:
>>> bin(10)
'0b1010'
对您的代码进行一些修改:
number = int(input('Enter a number in base 10: '))
base2 = ''
while(number > 0):
rem = number % 2
number = number // 2 # can be number //= 2, or number >>= 1
base2 += str(rem)
#print(rem) # no need to print
print(base2[::-1])
或更简单:
base2 = bin(number)[2:]