Определения и базовые понятия теория
Что такое система счисления?
Система счисления (СС) — это способ записи чисел с помощью заданного набора специальных знаков (цифр).
Что нужно знать о СС
- СС делятся на позиционные (значение цифры зависит от её позиции) и непозиционные
- Основание СС (N) определяет размер алфавита: цифры 0…N−1
- Для N > 10 используются буквы: A=10, B=11, C=12, D=13, E=14, F=15
- В информатике используются: 2СС, 8СС, 10СС и 16СС
Позиционные vs Непозиционные
- Позиционная: значение цифры зависит от разряда
Пример: десятичная система — 234 = 2×10² + 3×10¹ + 4×10⁰ - Непозиционная: значение цифры не зависит от позиции
Пример: римская система — XIV = 10 + 5 − 1 = 14
Основные системы счисления в информатике
Двоичная
Цифры: 0, 1
Основа компьютеров
Восьмеричная
Цифры: 0-7
Компактная запись
Десятичная
Цифры: 0-9
Привычная нам
Шестнадцатеричная
Цифры: 0-9, A-F
Для программистов
Алгоритмы перевода
1. Из 10СС в NСС (деление с остатком)
Алгоритм перевода методом деления
Шаги алгоритма:
- Делим число на N (основание новой системы), записывая остаток
- Полученное частное снова делим на N, записывая остаток
- Продолжаем, пока частное не станет меньше N
- Последнее частное — старшая цифра результата
- Остатки читаем снизу вверх (от последнего к первому)
Пример: 156₁₀ → ?₂
156 : 2 = 78 остаток 0 78 : 2 = 39 остаток 0 39 : 2 = 19 остаток 1 19 : 2 = 9 остаток 1 9 : 2 = 4 остаток 1 4 : 2 = 2 остаток 0 2 : 2 = 1 остаток 0 1 < 2 (стоп) Читаем снизу вверх: 10011100₂
Ответ: 156₁₀ = 10011100₂
2. Из NСС в 10СС (взвешенная сумма)
Алгоритм перевода через разряды
Шаги алгоритма:
- Пронумеруйте разряды справа налево, начиная с 0
- Умножьте каждую цифру на N в степени её разряда
- Просуммируйте все произведения
Пример: 10011100₂ → ?₁₀
| Разряд | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Цифра | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
| 2ⁿ | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Вклад | 128 | 0 | 0 | 16 | 8 | 4 | 0 | 0 |
Сумма: 128 + 16 + 8 + 4 = 156
Ответ: 10011100₂ = 156₁₀
3. Быстрый перевод 10→2 (через степени двойки)
Быстрый метод через степени 2
Таблица степеней двойки (запомните!):
2⁰ = 1 2⁶ = 64 2¹ = 2 2⁷ = 128 2² = 4 2⁸ = 256 2³ = 8 2⁹ = 512 2⁴ = 16 2¹⁰ = 1024 2⁵ = 32 2¹¹ = 2048
Алгоритм:
- Найдите наибольшую степень 2, не превосходящую число
- Идите от этой степени к 2⁰
- Если степень "влезает" в остаток — пишите 1 и вычитайте её
- Если не влезает — пишите 0
Пример: 156₁₀ → ?₂
Наибольшая степень: 2⁷ = 128 ≤ 156 156 - 128 = 28, пишем 1 2⁶ = 64 > 28, пишем 0 2⁵ = 32 > 28, пишем 0 2⁴ = 16 ≤ 28, пишем 1 28 - 16 = 12 2³ = 8 ≤ 12, пишем 1 12 - 8 = 4 2² = 4 ≤ 4, пишем 1 4 - 4 = 0 2¹ = 2 > 0, пишем 0 2⁰ = 1 > 0, пишем 0 Результат: 10011100₂
Двоичная система
Важные свойства
- Чётность: Число чётно ⇔ последняя двоичная цифра 0; нечётно ⇔ 1
- Кратность: Число кратно 2ᵏ ⇔ запись оканчивается k нулями
- Степени двойки: 2ᵏ — это 1 и k нулей в двоичной записи
- Соседние степени: 2ᵏ − 1 — это k единиц в двоичной записи
Примеры
16 = 2⁴ → 10000₂ 32 = 2⁵ → 100000₂ 1024 = 2¹⁰ → 10000000000₂ 15 = 2⁴ − 1 → 1111₂ 31 = 2⁵ − 1 → 11111₂ 511 = 2⁹ − 1 → 111111111₂ 4095 = 2¹² − 1 → 111111111111₂
Арифметика в двоичной системе
Сложение:
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 (0 и 1 в перенос)
Умножение:
0 × 0 = 0 0 × 1 = 0 1 × 0 = 0 1 × 1 = 1
Полезные факты
- Умножение на 2 в двоичной системе = сдвиг влево на 1 позицию (добавление 0 справа)
- Деление на 2 = сдвиг вправо на 1 позицию (удаление последней цифры)
- Количество единиц в двоичной записи называется "весом Хэмминга"
- Число разрядов в двоичной записи числа n: ⌊log₂(n)⌋ + 1
Перевод через группировки
Основная идея
Между двоичной системой и системами с основаниями 4, 8 и 16 существует простая связь через группировку битов, так как 4=2², 8=2³ и 16=2⁴.
Таблицы соответствий
4СС ↔ 2СС (по 2 бита)
| 4СС | 2СС |
|---|---|
| 0 | 00 |
| 1 | 01 |
| 2 | 10 |
| 3 | 11 |
8СС ↔ 2СС (по 3 бита — триады)
| 8СС | 2СС | 8СС | 2СС | |
|---|---|---|---|---|
| 0 | 000 | 4 | 100 | |
| 1 | 001 | 5 | 101 | |
| 2 | 010 | 6 | 110 | |
| 3 | 011 | 7 | 111 |
16СС ↔ 2СС (по 4 бита — тетрады)
| 16СС | 2СС | 16СС | 2СС | |
|---|---|---|---|---|
| 0 | 0000 | 8 | 1000 | |
| 1 | 0001 | 9 | 1001 | |
| 2 | 0010 | A | 1010 | |
| 3 | 0011 | B | 1011 | |
| 4 | 0100 | C | 1100 | |
| 5 | 0101 | D | 1101 | |
| 6 | 0110 | E | 1110 | |
| 7 | 0111 | F | 1111 |
Примеры переводов через группировки
Пример 1: 2СС → 8СС
Переведём 10010110101011₂ в 8СС:
Разбиваем на триады справа налево: 10 010 110 101 011 Дополняем левую группу нулями до 3 битов: 010 010 110 101 011 Заменяем каждую триаду: 010 = 2 010 = 2 110 = 6 101 = 5 011 = 3 Ответ: 22653₈
Пример 2: 2СС → 16СС
Переведём 10010110101011₂ в 16СС:
Разбиваем на тетрады справа налево: 10 0101 1010 1011 Дополняем левую группу: 0010 0101 1010 1011 Заменяем каждую тетраду: 0010 = 2 0101 = 5 1010 = A 1011 = B Ответ: 25AB₁₆
Полезные свойства NСС
Свойства остатков
- Последняя цифра в N-ичной системе = остаток от деления числа на N
- Две последние цифры = остаток от деления на N²
- k последних цифр = остаток от деления на Nᵏ
Пример:
Число 2534₁₀:
- Последняя цифра: 4 → 2534 mod 10 = 4 ✓
- Две последние: 34 → 2534 mod 100 = 34 ✓
- Три последние: 534 → 2534 mod 1000 = 534 ✓
Свойства степеней основания
- Nᵏ в N-ичной системе записывается как 1 и k нулей
- Nᵏ − 1 записывается как k цифр (N−1)
Примеры:
| Система | Степень | Запись | N^k - 1 |
|---|---|---|---|
| 2СС | 2⁵ = 32 | 100000₂ | 31 = 11111₂ |
| 8СС | 8³ = 512 | 1000₈ | 511 = 777₈ |
| 10СС | 10⁴ = 10000 | 10000₁₀ | 9999 = 9999₁₀ |
| 16СС | 16² = 256 | 100₁₆ | 255 = FF₁₆ |
Задачи в стиле ЕГЭ
Сравните числа: (101101)₂, (55)₈, (2D)₁₆. Расположите по возрастанию.
Показать решение
Решение: Переведём все в десятичную систему:
- (101101)₂ = 1×32 + 0×16 + 1×8 + 1×4 + 0×2 + 1×1 = 32+8+4+1 = 45
- (55)₈ = 5×8 + 5×1 = 40 + 5 = 45
- (2D)₁₆ = 2×16 + 13×1 = 32 + 13 = 45
Ответ: Все три числа равны (45₁₀)
Сложите двоичные числа 101101₂ и 11011₂. Ответ дайте в 10СС.
Показать решение
Способ 1: Перевести в 10СС, сложить, готово:
101101₂ = 45₁₀ 11011₂ = 27₁₀ 45 + 27 = 72₁₀
Способ 2: Сложить в двоичной системе:
101101 + 11011 --------- 1001000₂ = 72₁₀
Ответ: 72₁₀
Вычислите 11010111₂ − 1001010₂. Ответ дайте в 10СС.
Показать решение
Решение:
11010111₂ = 128+64+16+4+2+1 = 215₁₀ 1001010₂ = 64+8+2 = 74₁₀ 215 - 74 = 141₁₀
Ответ: 141₁₀
Переведите 10010110101011₂ в 16СС и 1010110₂ в 4СС.
Показать решение
Часть 1: 10010110101011₂ → 16СС
Разбиваем на тетрады справа: 0010 0101 1010 1011 0010 = 2 0101 = 5 1010 = A 1011 = B Ответ: 25AB₁₆
Часть 2: 1010110₂ → 4СС
Разбиваем на пары справа: 01 01 01 10 01 = 1 01 = 1 01 = 1 10 = 2 Ответ: 1112₄
Ответы: 25AB₁₆ и 1112₄
Докажите, что последняя цифра в N-ичной системе равна остатку от деления на N.
Показать доказательство
Доказательство:
Представим число в N-ичной системе: (aₖ...a₁a₀)ₙ
Значение числа: aₖ×Nᵏ + ... + a₁×N¹ + a₀×N⁰
При делении на N:
- Все члены кроме a₀ содержат N в явном виде и делятся нацело
- Член a₀×N⁰ = a₀ не содержит N
- Следовательно, остаток от деления всего числа на N равен a₀
Пример: 2534₁₀ mod 10 = 4 (последняя цифра)
Переведите 379₁₀ в 5СС и 9СС.
Показать решение
Перевод в 5СС:
379 : 5 = 75 остаток 4 75 : 5 = 15 остаток 0 15 : 5 = 3 остаток 0 3 < 5 (стоп) Ответ: 3004₅
Перевод в 9СС:
379 : 9 = 42 остаток 1 42 : 9 = 4 остаток 6 4 < 9 (стоп) Ответ: 461₉
Ответы: 3004₅ и 461₉
Переведите (5361)₇ в десятичную систему.
Показать решение
Решение:
(5361)₇ = 5×7³ + 3×7² + 6×7¹ + 1×7⁰
= 5×343 + 3×49 + 6×7 + 1×1
= 1715 + 147 + 42 + 1
= 1905₁₀
Ответ: 1905₁₀
Переведите устно: 2048, 511 и 4095 в двоичную систему.
Показать решение
Используем свойства степеней двойки:
- 2048 = 2¹¹ → это 1 и 11 нулей → 100000000000₂
- 511 = 2⁹ − 1 → это 9 единиц → 111111111₂
- 4095 = 2¹² − 1 → это 12 единиц → 111111111111₂
Вычислите (753)₈ + (127)₈. Ответ дайте в 8СС.
Показать решение
Способ 1: Перевести в 10СС, сложить, перевести обратно:
753₈ = 7×64 + 5×8 + 3 = 448 + 40 + 3 = 491₁₀ 127₈ = 1×64 + 2×8 + 7 = 64 + 16 + 7 = 87₁₀ 491 + 87 = 578₁₀ 578 : 8 = 72 остаток 2 72 : 8 = 9 остаток 0 9 : 8 = 1 остаток 1 1 < 8 Ответ: 1102₈
Способ 2: Сложить в 8СС напрямую (с переносом при сумме ≥ 8)
Ответ: 1102₈
В какой системе счисления выполняется равенство: (35)ₙ + (24)ₙ = (61)ₙ?
Показать решение
Решение: Переведём в 10СС и составим уравнение:
(35)ₙ = 3n + 5 (24)ₙ = 2n + 4 (61)ₙ = 6n + 1 Уравнение: 3n + 5 + 2n + 4 = 6n + 1 5n + 9 = 6n + 1 9 - 1 = 6n - 5n 8 = n
Проверка: (35)₈ + (24)₈ = (61)₈
35₈ = 29₁₀ 24₈ = 20₁₀ 61₈ = 49₁₀ 29 + 20 = 49 ✓
Ответ: 8
Сколько единиц в двоичной записи числа 1023?
Показать решение
Решение: Заметим, что 1023 = 1024 − 1 = 2¹⁰ − 1
По свойству: 2ᵏ − 1 в двоичной системе — это k единиц
Значит, 1023₁₀ = 1111111111₂ (10 единиц)
Ответ: 10 единиц
Сколько разрядов в двоичной записи числа 500?
Показать решение
Решение: Найдём наибольшую степень 2, не превосходящую 500:
2⁸ = 256 ≤ 500 2⁹ = 512 > 500 Значит, старший разряд — 9-й (считая с 0) Количество разрядов = 9 + 1 = 10
Проверка: 500₁₀ = 111110100₂ (действительно 9 цифр)
Ответ: 9 разрядов
Число N в двоичной системе оканчивается на 3 нуля. Чему кратно это число?
Показать решение
Решение: По свойству: число кратно 2ᵏ ⇔ его двоичная запись оканчивается k нулями
Если запись оканчивается 3 нулями, то число кратно 2³ = 8
Пример: 1011000₂ = 88₁₀, и 88 ÷ 8 = 11 ✓
Ответ: Кратно 8
Какое число больше: (1000000)₂ или (100)₈? (Не переводя в десятичную)
Показать решение
Решение: Переведём 8СС → 2СС через триады:
(100)₈: 1 → 001 0 → 000 0 → 000 100₈ = 001000000₂ = 1000000₂
Оба числа равны!
Альтернативное объяснение:
1000000₂ — это 1 и 6 нулей = 2⁶ = 64₁₀
100₈ = 1×8² = 1×64 = 64₁₀
Ответ: Числа равны
Найдите количество чётных чисел в диапазоне от (1000)₂ до (10000)₂ включительно.
Показать решение
Решение: Переведём границы:
1000₂ = 8₁₀ 10000₂ = 16₁₀
Диапазон: от 8 до 16 включительно
Чётные числа: 8, 10, 12, 14, 16
Количество: 5
Формула: В диапазоне [a, b] чётных чисел: ⌊b/2⌋ − ⌊(a−1)/2⌋
⌊16/2⌋ − ⌊7/2⌋ = 8 − 3 = 5 ✓
Ответ: 5 чисел
Быстрая проверка в Python
Python — ваш помощник на экзамене!
На ЕГЭ разрешено использовать Python для проверки вычислений. Вот основные функции:
Из NСС в 10СС
Функция int(строка, основание)
# Из двоичной
int("101101", 2) # 45
# Из восьмеричной
int("55", 8) # 45
# Из шестнадцатеричной
int("2D", 16) # 45
int("FF", 16) # 255
# Из любой (до 36)
int("ZZ", 36) # 1295
Из 10СС в 2/8/16СС
Функции bin(), oct(), hex()
# В двоичную
bin(72) # '0b1001000'
bin(72)[2:] # '1001000' (без 0b)
# В восьмеричную
oct(72) # '0o110'
oct(72)[2:] # '110' (без 0o)
# В шестнадцатеричную
hex(72) # '0x48'
hex(72)[2:] # '48' (без 0x)
Универсальная функция для любой системы
def to_base(n, base):
"""
Переводит число n в систему счисления base
Возвращает строку
"""
if n == 0:
return '0'
digits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
result = ''
while n > 0:
result = digits[n % base] + result
n //= base
return result
# Примеры:
print(to_base(379, 5)) # '3004'
print(to_base(379, 9)) # '461'
print(to_base(156, 2)) # '10011100'
print(to_base(255, 16)) # 'FF'
int(s, base) принимает основания от 2 до 36 — можно работать с алфавитами A…Z для систем с основанием > 10.
Полезные приёмы в Python
# Подсчёт единиц в двоичной записи
bin(1023).count('1') # 10
# Количество разрядов в двоичной записи
len(bin(500)) - 2 # 9 (вычитаем '0b')
# Проверка чётности через двоичную запись
bin(156)[-1] == '0' # True (чётное)
bin(157)[-1] == '1' # True (нечётное)
# Быстрое возведение в степень
2**10 # 1024
# Проверка кратности степени двойки
156 % 4 == 0 # True (кратно 4 = 2²)
📚 Заключение
Ключевые моменты для успеха на ЕГЭ:
- ✅ Знайте алгоритмы перевода из 10СС в NСС и обратно
- ✅ Запомните таблицы группировок для 2↔4, 2↔8, 2↔16
- ✅ Помните степени двойки от 2⁰ до 2¹⁰ минимум
- ✅ Используйте свойства: 2ᵏ = 1 и k нулей, 2ᵏ−1 = k единиц
- ✅ Проверяйте вычисления в Python (разрешено на ЕГЭ!)
- ✅ Практикуйтесь в переводах — скорость приходит с опытом
Рекомендации по подготовке:
- Решайте по 5-10 задач на перевод каждый день
- Доведите до автоматизма группировки 2↔8 и 2↔16
- Научитесь быстро находить степени двойки в числах
- Освойте Python-функции для проверки
- Решайте задачи из реальных вариантов ЕГЭ