Системы счисления: двоичная запись и переводы чисел

Системы счисления показывают, как записывать числа с помощью разных наборов цифр. В школьной информатике чаще всего встречаются десятичная, двоичная, восьмеричная и…

Системы счисления показывают, как записывать числа с помощью разных наборов цифр. В школьной информатике чаще всего встречаются десятичная, двоичная, восьмеричная и шестнадцатеричная системы. Эта тема важна для ОГЭ, ЕГЭ по информатике и первых задач по устройству компьютера.

Десятичная система использует цифры от 0 до 9 и основание 10. Двоичная система использует только 0 и 1, потому что компьютер хранит данные через состояния, которые удобно считать выключенным и включенным сигналом.

Как перевести число в двоичную систему

Чтобы перевести десятичное число в двоичную запись, делите число на 2 и записывайте остатки. Остатки читаются снизу вверх.

Например, число 13:

  1. 13 делим на 2, остаток 1.
  2. 6 делим на 2, остаток 0.
  3. 3 делим на 2, остаток 1.
  4. 1 делим на 2, остаток 1.

Получается 1101.

n = int(input())
bits = ''

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

print(bits or '0')

Как перевести обратно

Для перевода из двоичной системы в десятичную умножайте каждую цифру на степень двойки. В числе 1101 справа налево стоят разряды 1, 2, 4, 8. Поэтому получается 1 * 8 + 1 * 4 + 0 * 2 + 1 * 1 = 13.

bits = input()
answer = 0

for bit in bits:
    answer = answer * 2 + int(bit)

print(answer)

Что тренировать школьнику

Начните с коротких чисел и проверяйте себя вручную. Затем решайте задачи на количество единиц в двоичной записи, сравнение чисел в разных системах, поиск минимального основания и перевод между восьмеричной, десятичной и шестнадцатеричной системами.

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

Источники