2016-04-21 3 views
0

В настоящее время я пишу программу Python 3 для преобразования десятичной дробной в двоичную, между прочим, для назначения Uni.Двоичные преобразования Проблемы вывода на Python

Я прибил все, кроме этого, на первом этапе (десятичное до двоичного).

dec = int(input("Enter a number: ")) 

while dec > 0 or dec == 0: 
    if dec > 0: 
     rem = dec % 2 
     dec = dec // 2 
     print(rem, end = "") 

Выходной сигнал дает двоичное число правильно, однако оно находится в обратном порядке. Не могли бы вы рассказать мне, как отменить выход или изменить процесс преобразования или что-то, чтобы исправить выход?

EDIT: Я не могу использовать встроенные функции, такие как bin (dec) и т. Д. Спасибо!

+0

Нужно ли печатать по одному символу за раз? Или вы можете добавить каждый символ в строку, а затем [изменить его] (http://stackoverflow.com/questions/931092/reverse-a-string-in-python)? – thegrinner

+0

Добавление возможно, да. Как мне это сделать? –

+0

http://stackoverflow.com/a/4435194/264775 – thegrinner

ответ

0

Приведенный выше код не является десятичным для двоичных, вместо этого он является примером дивиденда/напоминания. Вы можете сделать это следующим образом:

dec, rem = divmod(dec, 2) 

Если вы все еще хотите, чтобы преобразовать десятичное в двоичное делать -

bin(dec) 

Основываясь на комментарий, будет ли эта помощь?

def dec2bin(d): 
    s = '' 
    while d>0: 
    d,r = divmod(d, 2) 
    s += str(r) 

    return s[::-1] 

>>> dec2bin(6) 
'110' 
+0

Двоичные буквально остатки. Кроме того, я не могу использовать встроенные функции, такие как bin и т. Д. Извините за отсутствие указания, я отредактирую основную запись –

Смежные вопросы