ЯдроКодаподготовка к экзаменам
Учебная платформа

Загружаем материалы

Подготавливаем материалы и навигацию по разделу.

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

Автор: · Обновлено

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

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

Десятичная система использует цифры от 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)

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

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

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

Практикум: перевод числа 45 между системами

Разложите десятичное число 45 по степеням двойки и получите двоичную запись. Независимо выполните перевод последовательным делением на 2, записывая частные и остатки. Оба способа должны привести к одному результату. Затем восстановите десятичное число по позиционной формуле и проверьте программу. Повторите для 0, 1, 8 и 31, чтобы захватить ноль, одну единицу, степень двойки и цепочку единиц. Для шестнадцатеричной записи отдельно подпишите значения цифр A–F.

Контрольная точка

Почему остатки при делении читаются снизу вверх? Проследите, какой разряд создаётся первым, и свяжите каждый шаг с коэффициентом при очередной степени основания.

Частые вопросы

Можно ли проверять перевод встроенной функцией Python?

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

Источники