Перевод из десятичной системы счисления в двоичную
Вводится десятичное число. Реализовать на языке Python алгоритм его перевода в двоичную систему счисления.
Заметим, что в языке Python есть встроенная функция bin
, которая переводит десятичное число в двоичную систему счисления.
>>> bin(5) '0b101' >>> bin(10) '0b1010'
Мы же рассмотрим алгоритм такого перевода и его реализацию на Python.
Обычно десятичное число преобразуют к двоичному представлению путем нахождения остатков от деления на 2. При этом полученное на предыдущем шаге частное выступает в качестве делимого на следующем шаге. Деление заканчивается, когда делимое обращается в ноль. Остатки собираются в двоичное число начиная с конца, то есть последний остаток будет первой цифрой двоичного числа. Например, надо перевести число 8 в двоичную систему:
- 8 / 2 = 4, остаток 0
- 4 / 2 = 2, остаток 0
- 2 / 2 = 1, остаток 0
- 1 / 2 = 0, остаток 1
- 0 - конец деления
- Сборка: 10002
При реализации данного алгоритма с помощью языка программирования надо организовать хранение остатков. Сделать это можно в переменной строкового типа или в списке. В случае строки каждый новый остаток следует добавлять в начало.
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
списка изменяет последовательность элементов на обратную.