1. Введение: зачем нужны разные системы счисления
В цифровой технике и программировании используются недесятичные системы счисления по следующим причинам:
- аппаратная реализация: электроника «понимает» только два состояния (0 / 1);
- компактность записи: шестнадцатеричная система сокращает длинные двоичные последовательности;
- совместимость с десятичной: BCD упрощает ввод‑вывод чисел для человека.
Ключевые понятия:
- основание системы (количество цифр): 2 (двоичная), 10 (десятичная), 16 (шестнадцатеричная);
- разряд (позиция цифры в числе);
- вес разряда (степень основания: bn).
2. Двоичная система счисления (base‑2)
2.1. Основы
- Алфавит: 0, 1.
- Основание: 2.
- Пример числа: 10112.
Разложение по степеням двойки:
10112=1⋅23+0⋅22+1⋅21+1⋅20=8+0+2+1=1110.
2.2. Свойства
- минимальное основание для цифровой логики;
- простота реализации (транзистор: открыт / закрыт);
- избыточность записи (длинная последовательность битов).
2.3. Операции в двоичной системе
- Сложение:1011+ 110111000 (11 + 13 = 24).
- Умножение:101× 11101101 1111 (5 × 3 = 15).
2.4. Применение
- внутренняя работа процессоров;
- хранение данных в памяти;
- логические схемы (вентили И, ИЛИ, НЕ).
3. Шестнадцатеричная система счисления (hex, base‑16)
3.1. Алфавит и правила записи
- Цифры: 0–9, A (10), B (11), C (12), D (13), E (14), F (15).
- Обозначение: префикс
0x(например,0xA3) или суффиксh(A3h). - Пример: A316=10⋅161+3⋅160=16310.
3.2. Связь с двоичной системой
- 1 hex‑цифра = 4 бита (полубайт, nibble):
- 016=00002;
- F16=11112;
- A16=10102.
Преобразование:
- B416→1011 01002;
- 1101 00112→D316.
3.3. Преимущества
- компактность:
0xFFвместо11111111; - удобство чтения для человека;
- стандартизация (адреса памяти, цвета RGB, дампы памяти).
3.4. Примеры использования
- адресация памяти (например,
0x8000); - цветовые коды (
#FF5733); - отладка (шестнадцатеричные дампы);
- ассемблерные инструкции.
4. Двоично‑десятичный код (BCD, Binary‑Coded Decimal)
4.1. Принцип кодирования
- Каждая десятичная цифра (0–9) кодируется 4 битами (тетрадой).
- Два формата:
- Неупакованный BCD: 1 цифра = 1 байт (младшие 4 бита — цифра, старшие — 0).
- Упакованный BCD: 1 байт = 2 цифры (по 4 бита).
Примеры:
- Число 27:
- неупакованный:
00000010 00000111; - упакованный:
00100111.
- неупакованный:
- Число 91:
- упакованный:
10010001.
- упакованный:
4.2. Допустимые и недопустимые комбинации
- Допустимы: 0000–1001 (0–9).
- Недопустимы: 1010–1111 (A–F) — ошибка в BCD.
4.3. Операции с BCD
- Сложение:
- Сложить двоичные тетрады.
- Если результат > 9 или есть перенос — добавить 6 (01102).
- двоично: 0101+0111=1100 (12₁₀);
- коррекция: 1100+0110=1 0010 →
0001 0010(12 в BCD).
- Вычитание: аналогично, но с вычитанием 6 при заёме.
4.4. Преимущества BCD
- точность при работе с десятичными дробями (нет ошибок округления, как в float);
- простой ввод‑вывод (калькуляторы, дисплеи);
- соответствие денежным расчётам (копейки, центы).
4.5. Недостатки
- избыточность (4 бита на цифру вместо ~3,32 бита теоретически);
- сложность арифметики (нужна коррекция);
- неэффективность для вычислений общего назначения.
4.6. Применение
- калькуляторы и кассовые аппараты;
- финансовые системы (валютные операции);
- цифровые часы и таймеры;
- интерфейсы с семисегментными индикаторами.
5. Сравнение систем счисления
| Параметр | Двоичная | Шестнадцатеричная | BCD |
|---|---|---|---|
| Основание | 2 | 16 | 10 (кодируется двоично) |
| Алфавит | 0,1 | 0–9,A–F | 0–9 (по 4 бита) |
| Компактность | Низкая | Высокая | Средняя |
| Удобство для человека | Низкое | Высокое | Высокое (для десятичных чисел) |
| Аппаратная сложность | Минимальная | Средняя | Средняя (нужна коррекция) |
| Типичное применение | Логика, память | Адреса, дампы | Финансы, индикация |
6. Алгоритмы перевода между системами
6.1. Десятичное → двоичное
- Деление на 2 с остатком.
Пример: 25₁₀ → ?₂ - 25 ÷ 2 = 12 (ост. 1)
- 12 ÷ 2 = 6 (ост. 0)
- 6 ÷ 2 = 3 (ост. 0)
- 3 ÷ 2 = 1 (ост. 1)
- 1 ÷ 2 = 0 (ост. 1)
→ 110012.
6.2. Двоичное → десятичное
- Сумма степеней двойки.



