【发布时间】:2018-09-19 16:18:54
【问题描述】:
我正在做一个二进制计数器程序。我需要它来打印十进制等价物和相应的二进制等价物......
到目前为止,我已经设法做到了这一点,但我需要将二进制从 0 转换为用户输入值,我一直在玩它,但我无法弄清楚:感谢任何帮助: )
Please enter number: 12
Decimal: 1 = binary: 1100
Decimal: 2 = binary: 1100
Decimal: 3 = binary: 1100
Decimal: 4 = binary: 1100
Decimal: 5 = binary: 1100
Decimal: 6 = binary: 1100
Decimal: 7 = binary: 1100
Decimal: 8 = binary: 1100
Decimal: 9 = binary: 1100
Decimal: 10 = binary: 1100
Decimal: 11 = binary: 1100
Decimal: 12 = binary: 1100
从此代码
dec = input('Please enter number')
new_list = []
index = 0
output = ''
counter = 0
dec = int(dec)
upper_range = int(dec)
#for x in range(0,upper_range):
while dec > 0:
output += str(dec % 2)
dec = (dec // 2)
output = output[::-1]
new_list.append(output)
while counter < upper_range:
print('Decimal:', counter + 1, end=' ',)
print(' = binary:' , *new_list)
counter = counter + 1
【问题讨论】:
-
'{:04b}'.format(12)将12转换为带有前导零最多4 个字符的二进制字符串:'1100'。你可以免费获得那部分...... -
谢谢,但我必须使用代码转换,我不能使用内置函数。代码本身也是一次性的,但我希望它从 0 转换为 user_input:)
-
您只计算一个二进制表示...
dec的那个。这就是你在new_list中的痛处。你应该为每个counter计算一下。
标签: python python-3.x