Системы счисления: двоичная, восьмеричная и шестнадцатеричная
Системы счисления одна из первых тем ЕГЭ и ОГЭ по информатике. Компьютер хранит всё в двоичном виде, а программисты записывают числа в шестнадцатеричном. Разбираем перевод в обе стороны, быстрые приёмы и показываем, как проверить себя на Python.
Для учеников 8–11 классов.
Что такое система счисления
В привычной десятичной системе каждая цифра стоит на месте с весом: единицы, десятки, сотни. Это степени десяти. В двоичной системе всё так же, только веса это степени двойки: 1, 2, 4, 8, 16, 32 и так далее, а цифр всего две, 0 и 1.
345₁₀ = 3 · 10² + 4 · 10¹ + 5 · 10⁰
Из двоичной в десятичную
Подписываем над каждой цифрой её вес справа налево и складываем веса там, где стоят единицы.
Задача
Переведите 101101₂ в десятичную систему.
Веса справа налево: 1, 2, 4, 8, 16, 32.
Единицы стоят на местах с весами 32, 8, 4 и 1.
32 + 8 + 4 + 1 = 45.
Ответ: 45.
Из десятичной в двоичную
Делим число на 2 с остатком, пока не получим ноль. Остатки, записанные снизу вверх, и есть двоичная запись.
Задача
Переведите 45 в двоичную систему.
45 : 2 = 22, остаток 1. 22 : 2 = 11, остаток 0. 11 : 2 = 5, остаток 1.
5 : 2 = 2, остаток 1. 2 : 2 = 1, остаток 0. 1 : 2 = 0, остаток 1.
Остатки снизу вверх: 101101.
Ответ: 101101₂.
Другой способ: вычитать наибольшие степени двойки. 45 = 32 + 13 = 32 + 8 + 5 = 32 + 8 + 4 + 1. Ставим единицы на места 32, 8, 4 и 1.
Восьмеричная и шестнадцатеричная через группы
8 = 2³ и 16 = 2⁴, поэтому переводить между ними и двоичной системой очень просто. Разбиваем двоичную запись справа налево на группы по три цифры для восьмеричной и по четыре для шестнадцатеричной.
- 101101₂ → 101 101 → 5 и 5 → 55₈. Проверка: 5 · 8 + 5 = 45.
- 101101₂ → 0010 1101 → 2 и 13 → 2D₁₆. В шестнадцатеричной цифры после 9 обозначают буквами: A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.
Задача в духе ЕГЭ
Задача
Сколько единиц в двоичной записи числа 4²⁰ + 2¹⁰ − 1?
4²⁰ = 2⁴⁰. В двоичной записи это единица и сорок нулей.
2¹⁰ − 1 это десять единиц подряд: 1111111111.
Они стоят на разных местах и не перекрываются, поэтому при сложении единицы просто объединяются: 1 + 10 = 11.
Ответ: 11.
Такие задачи на экзамене удобно проверять программой. На Python: bin(420 + 210 - 1).count('1') даёт 11. Перевод в обе стороны: int('101101', 2) вернёт 45, а bin(45) строку '0b101101', hex(45) строку '0x2d'.
Разберём на занятии
Занимаемся по всем школьным предметам с 4 по 11 класс: живые занятия, общая доска и домашка, которую проверяет тот же преподаватель.
Первое занятие бесплатное: можно посмотреть формат вместе с ребёнком и решить, подходит ли он.
Частые вопросы
Зачем нужна шестнадцатеричная система?
Она компактно записывает двоичные данные: одна шестнадцатеричная цифра это ровно четыре двоичных. Так записывают цвета на сайтах (#FF8800), адреса в памяти и коды символов.
Какой язык программирования учить для ЕГЭ по информатике?
Чаще всего выбирают Python: в нём короткий код и много готовых функций, например для перевода систем счисления. О поступлении на IT-направления читайте отдельную статью.

