ШПАРГАЛКА

Системы счисления

Шпаргалка по системам счисления для ЕГЭ и ОГЭ: двоичная, восьмеричная, шестнадцатеричная. Переводы, схема Горнера, арифметика, типичные задания с решениями.

Система счисления — это способ записи чисел с помощью набора символов (цифр). Эта шпаргалка собирает всё, что нужно для ЕГЭ и ОГЭ по информатике: позиционные системы, переводы между основаниями, схему Горнера, деление с остатком, быстрые приёмы 2↔8↔16, двоичную арифметику и разбор типичных заданий с пошаговыми решениями.

Позиционные системы счисления

В позиционной системе вес цифры зависит от её позиции (разряда). Основание системы p — это количество используемых цифр. Любое число можно представить как сумму произведений цифр на степени основания.

Для числа с цифрами a в системе с основанием p:

N = a_n·p^n + a_(n-1)·p^(n-1) + ... + a_1·p^1 + a_0·p^0

Например, десятичное число 345 раскладывается так:

345 = 3·10^2 + 4·10^1 + 5·10^0 = 300 + 40 + 5

В непозиционных системах (например, римской) значение символа не зависит от позиции — такие системы в заданиях ЕГЭ почти не встречаются, но знать различие полезно.

Основные системы счисления

В информатике чаще всего используют четыре системы. Цифры, превышающие 9, в шестнадцатеричной системе обозначают буквами A–F.

СистемаОснованиеИспользуемые цифрыГде применяется
Двоичная20, 1Внутреннее представление в компьютере
Восьмеричная80–7Компактная запись двоичных кодов
Десятичная100–9Повседневный счёт
Шестнадцатеричная160–9, A–FЦвета, адреса памяти, байты

Чтобы указать основание, его пишут нижним индексом: 101 в двоичной — это 1012 = 510. В тексте заданий часто пишут «101 в двоичной системе» или используют запись 101₂.

Таблица соответствия 0–15

Эту таблицу полезно выучить наизусть — она лежит в основе быстрых переводов 2↔8↔16. Обратите внимание: 4 двоичных разряда (тетрада) дают ровно одну шестнадцатеричную цифру, а 3 двоичных разряда (триада) — одну восьмеричную.

ДесятичнаяДвоичная (4 бита)ВосьмеричнаяШестнадцатеричная
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Перевод в десятичную систему (схема Горнера)

Чтобы перевести число из любой системы в десятичную, нужно умножить каждую цифру на основание в степени её разряда и сложить. Разряды нумеруются справа налево, начиная с 0.

Способ 1: разложение по степеням

Переведём 10112 в десятичную:

1011 = 1·2^3 + 0·2^2 + 1·2^1 + 1·2^0
     = 8 + 0 + 2 + 1
     = 11

Переведём 2A16 в десятичную (помним: A = 10):

2A = 2·16^1 + 10·16^0
   = 32 + 10
   = 42

Способ 2: схема Горнера (быстрее для длинных чисел)

Идём по цифрам слева направо: текущий результат умножаем на основание и прибавляем следующую цифру. Начинаем с 0.

Переведём 1101012 в десятичную по Горнеру:

Начало:  r = 0
+1:  r = 0·2 + 1 = 1
+1:  r = 1·2 + 1 = 3
+0:  r = 3·2 + 0 = 6
+1:  r = 6·2 + 1 = 13
+0:  r = 13·2 + 0 = 26
+1:  r = 26·2 + 1 = 53
Ответ: 110101 = 53

Схема Горнера удобна тем, что не нужно считать степени — только умножение и сложение в столбик «накопителем».

Перевод из десятичной системы (деление с остатком)

Чтобы перевести десятичное число в систему с основанием p, нужно делить число на p с остатком, записывая остатки. Затем остатки читают снизу вверх (от последнего к первому).

Пример: 53 в двоичную

53 : 2 = 26, остаток 1
26 : 2 = 13, остаток 0
13 : 2 = 6,  остаток 1
6  : 2 = 3,  остаток 0
3  : 2 = 1,  остаток 1
1  : 2 = 0,  остаток 1
Читаем остатки снизу вверх: 110101
Ответ: 53 = 110101

Пример: 100 в шестнадцатеричную

100 : 16 = 6, остаток 4
6   : 16 = 0, остаток 6
Читаем снизу вверх: 64
Ответ: 100 = 64

Пример: 250 в восьмеричную

250 : 8 = 31, остаток 2
31  : 8 = 3,  остаток 7
3   : 8 = 0,  остаток 3
Читаем снизу вверх: 372
Ответ: 250 = 372

Если остаток больше 9 (при переводе в 16-ричную), не забудьте заменить его буквой: 10→A, 11→B, …, 15→F.

Быстрый перевод 2 ↔ 8 ↔ 16

Это самый частый приём на ЕГЭ. Поскольку 8 = 2³ и 16 = 2⁴, перевод выполняется группировкой двоичных цифр без промежуточного перехода в десятичную.

Двоичная → восьмеричная (триады)

Разбиваем двоичное число на группы по 3 цифры справа налево, недостающие слева дополняем нулями, каждую триаду заменяем восьмеричной цифрой.

10110101
Группируем по 3 справа: 10 110 101
Дополняем слева нулями:  010 110 101
По таблице:               2   6   5
Ответ: 10110101 = 265

Двоичная → шестнадцатеричная (тетрады)

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

10110101
Группируем по 4 справа: 1011 0101
По таблице:              B    5
Ответ: 10110101 = B5

Обратно: 8 → 2 и 16 → 2

Каждую восьмеричную цифру заменяем триадой, каждую шестнадцатеричную — тетрадой (с ведущими нулями).

7 5 3 (восьмеричное)
7 → 111,  5 → 101,  3 → 011
Ответ: 753 = 111101011

3 F (шестнадцатеричное)
3 → 0011,  F → 1111
Ответ: 3F = 00111111 = 111111

Через двоичную: 8 ↔ 16

Прямого правила между 8 и 16 нет — переводят через двоичную: восьмеричное → двоичное (триады) → шестнадцатеричное (тетрады).

Арифметика в двоичной системе

Действия выполняются по тем же правилам столбика, что и в десятичной, но перенос/заём происходит при значении 2, а не 10.

Сложение

Таблица сложения битов: 0+0=0, 0+1=1, 1+0=1, 1+1=10 (ноль, единица в перенос).

  1011   (11)
+ 0110   (6)
------
 10001   (17)

Поразрядно справа налево:
1+0=1
1+1=10  -> пишем 0, в перенос 1
0+1+1=10 -> пишем 0, в перенос 1
1+0+1=10 -> пишем 0, в перенос 1
перенос 1 -> старший разряд 1

Вычитание

При нехватке занимаем единицу из старшего разряда (она равна двум в текущем).

  1101   (13)
- 0111   (7)
------
  0110   (6)

Умножение

Умножение в двоичной — это сдвиги и сложения: умножать можно только на 0 или 1.

    101   (5)
  ×  11   (3)
  -----
    101
+  101    (сдвиг на 1 разряд влево)
  -----
   1111   (15)

Полезно помнить: умножение на 2 (102) = приписать ноль справа (сдвиг влево), деление на 2 = отбросить младший разряд (сдвиг вправо).

Типичные задания ЕГЭ и ОГЭ

Сколько единиц в двоичной записи числа

Задача. Сколько значащих единиц в двоичной записи числа 195?

195 : 2 = 97, ост. 1
97  : 2 = 48, ост. 1
48  : 2 = 24, ост. 0
24  : 2 = 12, ост. 0
12  : 2 = 6,  ост. 0
6   : 2 = 3,  ост. 0
3   : 2 = 1,  ост. 1
1   : 2 = 0,  ост. 1
195 = 11000011
Единиц: 4

Подсказка для проверки: 195 = 128 + 64 + 2 + 1 = 2⁷ + 2⁶ + 2¹ + 2⁰ — четыре слагаемых, значит четыре единицы.

Найти основание системы по уравнению

Задача. В системе счисления с основанием p запись числа 21p равна 1310. Найдите p.

21 в основании p = 2·p + 1
Уравнение: 2·p + 1 = 13
2·p = 12
p = 6
Ответ: основание 6

Задача. Решите уравнение 13x + 12x = 31x (все числа в системе с основанием x).

13 = 1·x + 3
12 = 1·x + 2
31 = 3·x + 1
Уравнение: (x+3) + (x+2) = 3x + 1
2x + 5 = 3x + 1
x = 4
Проверка: цифра 3 < 4 — корректно.
Ответ: x = 4

Сравнение чисел в разных системах

Задача. Что больше: 1A16 или 358? Переведём оба в десятичную.

1A(16) = 1·16 + 10 = 26
35(8)  = 3·8 + 5  = 29
29 > 26, значит 35(8) больше

Количество чисел в диапазоне с заданным числом единиц

Задача. Сколько существует трёхзначных двоичных чисел? Старший разряд не может быть нулём, поэтому он зафиксирован как 1, а два оставшихся — любые: 2² = 4 числа (100, 101, 110, 111).

Признаки делимости в разных основаниях

Признаки делимости тоже зависят от основания. Общая идея: число делится на делитель основания (или на само основание) по последним цифрам.

СистемаПризнакПояснение
ДвоичнаяЧётность — по последней цифреОканчивается на 0 → делится на 2; на 00 → на 4; на 000 → на 8
ВосьмеричнаяДелимость на 2 и 4 — по последней цифреПоследняя цифра делится на 2 → число чётное; основание 8 = 2³
ШестнадцатеричнаяДелимость на 2, 4, 8 — по последней цифреОснование 16 = 2⁴, последняя цифра содержит делимость на степени двойки
ДесятичнаяНа 5 и 10 — по последней цифре; на 3 и 9 — по сумме цифрКлассические признаки

Общее правило. Число в системе с основанием p делится на любой делитель p тогда и только тогда, когда на этот делитель делится его последняя цифра. Например, в десятичной системе (p = 10, делители 2 и 5) чётность и делимость на 5 проверяются по последней цифре.

Признак, аналог «суммы цифр». Число делится на (p − 1) тогда и только тогда, когда на (p − 1) делится сумма его цифр. В десятичной это известный признак делимости на 9. В шестнадцатеричной — это признак делимости на 15, в восьмеричной — на 7.

Системы счисления в Python

Python умеет переводить числа между системами встроенными функциями. Они часто помогают быстро проверить ответ.

Из десятичной в другие: bin(), oct(), hex()

bin(53)   # '0b110101'  — двоичная (префикс 0b)
oct(250)  # '0o372'     — восьмеричная (префикс 0o)
hex(100)  # '0x64'      — шестнадцатеричная (префикс 0x)

# Убрать префикс можно срезом [2:]:
bin(53)[2:]   # '110101'
hex(255)[2:]  # 'ff'

Из любой системы в десятичную: int(x, base)

Функция int(строка, основание) переводит запись числа из указанной системы в десятичную.

int('110101', 2)  # 53   — из двоичной
int('372', 8)     # 250  — из восьмеричной
int('64', 16)     # 100  — из шестнадцатеричной
int('2A', 16)     # 42   — буквы можно в любом регистре
int('0b110101', 2)  # 53 — префикс тоже допускается

# base=0 определит систему по префиксу автоматически:
int('0xFF', 0)    # 255
int('0o17', 0)    # 15

Подсчёт единиц в двоичной записи

n = 195
ones = bin(n).count('1')   # 4 — считаем единицы в строке
print(ones)                # 4

# В Python 3.10+ есть готовый метод:
(195).bit_count()          # 4

Форматирование с ведущими нулями

format(5, '08b')   # '00000101' — 8 двоичных разрядов
format(255, '04x') # '00ff'     — 4 шестнадцатеричных разряда
f'{10:b}'          # '1010'     — через f-строку

Совет для ЕГЭ: на экзамене калькулятором и Python пользоваться нельзя, но дома эти функции — отличный способ проверить решение, выполненное вручную.

Поддержать проект