首页 > 解决方案 > 迭代用户输入并转换为二进制

问题描述

我正在做一个二进制计数器程序。我需要它来打印十进制等价物和相应的二进制等价物......

到目前为止,我已经设法做到了这一点,但是我需要将二进制文件从 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

标签: pythonpython-3.x

解决方案


您应该改为在循环内进行十进制到二进制的转换;否则它只进行上限值的转换:

dec = input('Please enter number')

counter = 1
upper_range = int(dec)

while counter <= upper_range:
    binary = ''
    dec = counter
    while dec > 0:
        binary += str(dec % 2)
        dec = (dec // 2)
    binary = binary[::-1]
    print('Decimal:', counter, end=' ',)
    print(' = binary:' , binary)
    counter = counter + 1

推荐阅读