Как решать задание 14 ЕГЭ по информатике — системы счисления
Разбор задания 14 ЕГЭ по информатике 2026: позиционные системы счисления, перевод между основаниями, арифметика в двоичной, Python как калькулятор. Пошаговые примеры и типичные ошибки.
О чём задание 14
Задание 14 КЕГЭ проверяет, как ты работаешь с позиционными системами счисления: умеешь ли переводить числа между основаниями, выполнять арифметику в двоичной, искать неизвестное основание или минимальное число с заданными свойствами. Это задание повышенного уровня сложности, 1 первичный балл, и ответ — короткое целое число.
В КЕГЭ 2026 у тебя 235 минут на 27 заданий. Типичный план — выдать задание 14 за 4-6 минут. Если знаешь Python и уверенно владеешь тетрадами, это один из самых «дешёвых» баллов в экзамене. Основные изменения всей КЕГЭ-2026 разобраны в статье ЕГЭ по информатике 2026 — что изменилось.
Теория: позиционные системы счисления
Что такое позиционная система
Позиционная означает, что значение цифры зависит от её позиции. Число 325 в десятичной записи — это 3·10² + 2·10¹ + 5·10⁰. В двоичной 101 — это 1·2² + 0·2¹ + 1·2⁰ = 5. Основание системы — это число, в степенях которого раскладывается запись.
Самые частые в ЕГЭ:
| Система | Основание | Цифры |
|---|---|---|
| Двоичная | 2 | 0, 1 |
| Троичная | 3 | 0, 1, 2 |
| Восьмеричная | 8 | 0–7 |
| Десятичная | 10 | 0–9 |
| Шестнадцатеричная | 16 | 0–9, A, B, C, D, E, F |
Запись 123₈ означает «123 в восьмеричной». В задачах тебе встретятся записи вида A15₁₆, 1011₂, 24₃ и т.д.
Перевод в десятичную — по определению
Самый надёжный способ: разложи по степеням основания и сложи.
Пример. Перевести 1A3F₁₆ в десятичную.
1A3F = 1·16³ + 10·16² + 3·16¹ + 15·16⁰
= 1·4096 + 10·256 + 3·16 + 15·1
= 4096 + 2560 + 48 + 15
= 6719
Перевод из десятичной — деление с остатком
Делишь число на основание, записываешь остатки справа налево. Делишь, пока частное не станет 0.
Пример. Перевести 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₂. Проверка: 32 + 8 + 4 + 1 = 45. Сходится.
Тетрады и триады — быстрый мост между СС
Поскольку 16 = 2⁴ и 8 = 2³, между этими системами есть волшебный приём:
- 1 шестнадцатеричная цифра = 4 двоичных цифры (тетрада)
- 1 восьмеричная цифра = 3 двоичных цифры (триада)
Таблица тетрад — стоит знать наизусть:
| Hex | Dec | Bin | Hex | Dec | Bin | |
|---|---|---|---|---|---|---|
| 0 | 0 | 0000 | 8 | 8 | 1000 | |
| 1 | 1 | 0001 | 9 | 9 | 1001 | |
| 2 | 2 | 0010 | A | 10 | 1010 | |
| 3 | 3 | 0011 | B | 11 | 1011 | |
| 4 | 4 | 0100 | C | 12 | 1100 | |
| 5 | 5 | 0101 | D | 13 | 1101 | |
| 6 | 6 | 0110 | E | 14 | 1110 | |
| 7 | 7 | 0111 | F | 15 | 1111 |
Пример. Перевести 2AF₁₆ в двоичную через тетрады:
2 A F
0010 1010 1111
Ответ: 001010101111₂, или без ведущих нулей — 1010101111₂.
Обратно — группируешь справа налево по 4 бита, при нехватке добавляешь нули:
110101100 → 0001 1010 1100 → 1AC₁₆
Арифметика в двоичной
Сложение столбиком по тем же правилам, что и в десятичной, только перенос при 2, а не при 10:
1011
+ 0110
------
10001
Таблица сложения в двоичной: 0+0=0, 0+1=1, 1+0=1, 1+1=10 (ноль и перенос 1).
Умножение на 2ⁿ — это сдвиг влево на n позиций. Например, 101₂ · 4 = 10100₂ (сдвинули на 2 бита). Это полезный приём, когда надо быстро возвести двойку в степень или умножить/поделить.
Python как калькулятор
В КЕГЭ ты сидишь за компьютером, и Python — это легальный супер-инструмент. Для систем счисления запомни четвёрку функций:
# Из двоичной/восьмеричной/шестнадцатеричной в десятичную
int("101", 2) # -> 5
int("777", 8) # -> 511
int("AB", 16) # -> 171
int("10212", 3) # -> 104 (работает с любым основанием 2-36)
# Из десятичной в двоичную/восьмеричную/шестнадцатеричную
bin(5) # -> '0b101'
oct(511) # -> '0o777'
hex(171) # -> '0xab'
# Убрать префиксы
bin(5)[2:] # -> '101'
hex(171)[2:].upper()# -> 'AB'
Лайфхак для произвольного основания — пиши функцию:
def to_base(n, b):
if n == 0:
return "0"
digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
s = ""
while n:
s = digits[n % b] + s
n //= b
return s
print(to_base(100, 7)) # -> '202'
Эта функция сэкономит тебе минуты в задачах, где нужно перебирать основания или смотреть запись числа в «экзотической» системе.
Больше боевых Python-приёмов для КЕГЭ собрано в Python-идиомы для ЕГЭ и в материале Python или C++ на ЕГЭ.
Типы задач в задании 14
- Значение выражения в разных СС — даны числа в разных системах, нужно сложить/вычесть и записать ответ в указанной системе.
- Найти основание p — дано равенство, надо определить, при каком основании оно верно.
- Минимальное/максимальное число с условием на цифры — например, найти минимальное число, в двоичной записи которого ровно 5 единиц и оно делится на 7.
- Количество единиц (или нулей) в двоичной записи — для одного числа или для всех чисел из диапазона.
Пошаговые разборы
Пример 1. Значение выражения (базовый уровень)
Условие. Вычисли значение выражения A5₁₆ + 101₃. Ответ запиши в восьмеричной системе.
Решение руками.
Шаг 1. Переводим каждое слагаемое в десятичную.
A5₁₆ = 10·16 + 5 = 165
101₃ = 1·9 + 0·3 + 1 = 10
Шаг 2. Складываем в десятичной: 165 + 10 = 175.
Шаг 3. Переводим 175 в восьмеричную делением:
175 / 8 = 21 остаток 7
21 / 8 = 2 остаток 5
2 / 8 = 0 остаток 2
Читаем снизу вверх: 257₈. Это и есть ответ.
Решение на Python (для самопроверки):
a = int("A5", 16)
b = int("101", 3)
print(oct(a + b)[2:]) # -> '257'
Пример 2. Поиск основания p (средний уровень)
Условие. Найди основание p системы счисления, при котором верно равенство 123ₚ + 33ₚ = 201ₚ.
Решение руками. Запишем обе части в виде многочленов по p:
Левая: (1·p² + 2·p + 3) + (3·p + 3) = p² + 5p + 6
Правая: 2·p² + 0·p + 1 = 2p² + 1
Уравнение: p² + 5p + 6 = 2p² + 1 → p² - 5p - 5 = 0.
Дискриминант: 25 + 20 = 45. Не целый корень — значит, в этом месте я бы перепроверил арифметику или перешёл к перебору. Кстати, перебор на Python быстрее рассуждений:
for p in range(4, 37): # все цифры должны быть < p, минимум 4 (т.к. есть цифра 3)
a = int("123", p)
b = int("33", p)
c = int("201", p)
if a + b == c:
print(p)
Проверка допустимости основания: самая большая цифра в записи — 3, значит p ≥ 4. Запускаем цикл — получаем значение p, при котором равенство верно. На экзамене такой перебор занимает 30 секунд вместе с написанием кода.
Пример 3. Минимальное число с условиями (сложный уровень)
Условие. Найди минимальное натуральное число N, большее 150, двоичная запись которого содержит ровно 5 единиц. В ответе укажи N в десятичной системе.
Решение на Python. Ручной разбор тут не нужен — пишем перебор:
N = 151
while True:
if bin(N).count("1") == 5:
print(N)
break
N += 1
Метод .count("1") у строки считает количество единичек в двоичной записи (после bin() отбрасываем префикс 0b, но count считает только единицы, так что префикс не мешает — 0b не содержит 1).
Как это решать без Python (для понимания). Чтобы число было минимальным при фиксированном числе единиц, единицы должны стоять в младших разрядах. Для 5 единиц самое маленькое число — 11111₂ = 31. Но нам нужно N > 150. Двоичная запись 150 — 10010110₂. Подбираем минимальное число больше 150 с ровно 5 единицами — это 10011011₂ (8 бит, 5 единиц) = 155. Проверка: bin(155) = '0b10011011', пять единиц, 155 > 150. Ответ: 155.
Типичные ошибки
- Путаница с основанием. Записал ответ в десятичной, когда просили в двоичной. Всегда перечитывай последнюю строку условия.
- Потеря ведущих нулей при тетрадах. Преобразовал
Aв1010, но в середине числа написал10— сломал разрядность. Всегда дописывай тетраду до 4 бит:1010, а не1010без учёта позиции. - Неверная проверка допустимости цифр. В задаче на поиск основания p забыл, что основание должно быть строго больше максимальной цифры в записи. Например, в записи
123ₚцифра3требуетp ≥ 4. - Переполнение при большой степени. В Python это не проблема (целые неограниченной разрядности), но на бумаге легко ошибиться, считая
2²⁰. Лучше посчитать на машине. - Не ту систему выбрал при переводе через тетрады. Тетрады — только для шестнадцатеричной. Для восьмеричной — триады (по 3 бита). Путать их нельзя.
- Забыл обработать ноль.
bin(0)возвращает'0b0', и функцияto_base(0, b)без отдельной ветки даст пустую строку. Это граничный случай, но в задачах на поиск минимума он иногда всплывает.
О других грабельках на КЕГЭ — в разборе Частые ошибки на ЕГЭ по информатике.
Тайминг и стратегия
Ориентир для задания 14 — 4-6 минут. Если за 7-8 минут ты не видишь подхода, поставь галочку и вернись после первого прохода. Задание 14 стоит 1 балл, как и 25 других, так что зависать на нём в ущерб следующим заданиям невыгодно. О том, как распределять 235 минут на весь экзамен, подробно в статье Как набрать 90+ баллов на ЕГЭ по информатике.
Минимальный чек-лист перед задачей:
- Прочитал условие дважды — понял, в какой системе ответ.
- Определил, задача на вычисление или на поиск (поиск → сразу думай о переборе).
- Выписал числа в десятичной через Python, проверил себя.
- Записал ответ в нужной системе, без ведущих нулей.
Что тренировать
- Таблица тетрад наизусть — 5 минут в день в течение недели, и ты переводишь двоичную ↔ шестнадцатеричную за секунды.
- Перевод из десятичной делением — набей руку, чтобы не ошибаться с остатками.
- Функции
bin,oct,hex,int(s, base)— доведи до автоматизма. - Универсальная
to_base(n, b)— запомни шаблон, пригодится в 14, 15, 16 и в олимпиадах. - Прогон вариантов — хотя бы 20 задач из банка ФИПИ. Паттерны повторяются, и после 20 задач ты начинаешь узнавать типы с первого взгляда.
План подготовки к ЕГЭ целиком есть в материалах План подготовки к ЕГЭ за 3 месяца и План подготовки к ЕГЭ с нуля.
Итог
Задание 14 — 1 балл повышенной сложности на системы счисления. Держи в голове три инструмента: определение (разложение по степеням), деление с остатком (десятичная → произвольная), тетрады (двоичная ↔ шестнадцатеричная). Python — в трёх функциях: bin, hex, int(s, base). Тайминг — 4-6 минут. При правильной тренировке это один из самых стабильных баллов в твоём портфеле.