Задачи / Числа / Перевод числа в двоичную систему
Перевод числа в двоичную систему: блок-схема и алгоритм
Делим число на 2 и записываем остатки: они и есть двоичные цифры, но в обратном порядке. Поэтому каждую новую цифру приписываем слева к строке результата.
Алгоритм по шагам
- Ввести n.
- Присвоить s = «» (пустая строка).
- Повторять: дописать остаток n mod 2 слева к s, n = n div 2 — до тех пор, пока n не станет 0.
- Вывести s.
Пример работы
| Вход | n = 13 |
| Шаг 1 | 13 mod 2 = 1, n = 6 → s = «1» |
| Шаг 2 | 6 mod 2 = 0, n = 3 → s = «01» |
| Шаг 3 | 3 mod 2 = 1, n = 1 → s = «101» |
| Шаг 4 | 1 mod 2 = 1, n = 0 → s = «1101» |
| Результат | 1101 |
Решение на Python
n = int(input())
s = ""
while True:
s = str(n % 2) + s
n //= 2
if n == 0:
break
print(s) # то же самое: bin(n)[2:]
Решение на Pascal
var n: integer;
s: string;
begin
readln(n);
s := '';
repeat
s := chr(ord('0') + n mod 2) + s;
n := n div 2;
until n = 0;
writeln(s);
end.
Код блок-схемы
Схема выше нарисована по этому псевдокоду. Скопируйте его в редактор блок-схем или нажмите «Открыть блок-схему в редакторе».
блок-схема: Перевод в двоичную систему
начало
ввод n
s = «»
повторять
s = (n mod 2) + s
n = n div 2
до n = 0
вывод s
конец
Сложность
O(log n) шагов — по одному на каждую двоичную цифру. Для системы с основанием k делите на k.
Частые ошибки
- Приписывать цифру справа — получится число задом наперёд.
- Цикл «пока n > 0» вместо «повторять … до»: для n = 0 ответ будет пустой строкой вместо «0».
- Складывать число со строкой без преобразования (в Python нужен str()).
Похожие задачи
- Проверка числа на простотуЧисло простое, если у него ровно два делителя: 1 и само число.
- НОД двух чисел: алгоритм ЕвклидаНОД(a, b) не меняется, если большее число заменить остатком от деления на меньшее: НОД(a, b) = НОД(b, a mod b).
- Факториал числаn! = 1 · 2 · 3 · … · n.
- Числа ФибоначчиКаждое число Фибоначчи — сумма двух предыдущих: 0, 1, 1, 2, 3, 5, 8, 13… Храним только два последних числа и на каждом шаге сдвигаем их вперёд..
- Сумма цифр числаПоследняя цифра числа — это остаток от деления на 10, а n div 10 отбрасывает её.
Обозначения фигур и синтаксис кода блок-схем — в справочнике: блок-схема по ГОСТ 19.701. Все задачи.