Перевод из десятичной системы счисления в двоичную

Вводится десятичное число. Реализовать на языке Python алгоритм его перевода в двоичную систему счисления.

Заметим, что в языке Python есть встроенная функция bin, которая переводит десятичное число в двоичную систему счисления.

>>> bin(5)
'0b101'
>>> bin(10)
'0b1010'

Мы же рассмотрим алгоритм такого перевода и его реализацию на Python.

Обычно десятичное число преобразуют к двоичному представлению путем нахождения остатков от деления на 2. При этом полученное на предыдущем шаге частное выступает в качестве делимого на следующем шаге. Деление заканчивается, когда делимое обращается в ноль. Остатки собираются в двоичное число начиная с конца, то есть последний остаток будет первой цифрой двоичного числа. Например, надо перевести число 8 в двоичную систему:

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

n = int(input())

b = ''

while n > 0:
    b = str(n % 2) + b
    n = n // 2

print(b)

Пример выполнения:

8
1000

Пример решения задачи с использованием списка и без преобразования цифр двоичного числа в строковый тип:

n = int(input())

b = []

while n > 0:
    b.append(n % 2)
    n //= 2

b.reverse()

for i in b:
    print(i, end='')

print()

Метод reverse списка изменяет последовательность элементов на обратную.


Решение задач на Python




Все разделы сайта