Статья Автор: Деникина Н.В., Деникин А.В.

Кодирование информации. Системы счисления

Системы счисления. Перевод чисел. Периодические дроби

1. Основные понятия

Система счисления (СС) — способ записи чисел с помощью символов (цифр) по определённым правилам.

Виды СС:

  • Позиционные — значение цифры зависит от её позиции (десятичная, двоичная, восьмеричная и т. д.).
  • Непозиционные — значение цифры не зависит от позиции (римская система).

Основание СС — количество цифр, используемых в системе (например, в двоичной — 2, в десятичной — 10).

2. Перевод целых чисел

Из любой СС в десятичную:

anan-1...a0 = an × pn + an-1 × pn-1 + ... + a0 × p0
Пример:
10112 = 1×23 + 0×22 + 1×21 + 1×20 = 8 + 0 + 2 + 1 = 1110

Из десятичной в другую СС:

Деление числа на основание новой СС с записью остатков в обратном порядке.

Пример:
2510 в двоичную:
25 ÷ 2 = 12 (ост. 1)
12 ÷ 2 = 6 (ост. 0)
6 ÷ 2 = 3 (ост. 0)
3 ÷ 2 = 1 (ост. 1)
1 ÷ 2 = 0 (ост. 1)
2510 = 110012

3. Перевод вещественных чисел

Из любой СС в десятичную:

0,a-1a-2... = a-1 × p-1 + a-2 × p-2 + ...
Пример:
0,1012 = 1×2-1 + 0×2-2 + 1×2-3 = 0.5 + 0 + 0.125 = 0.62510

Из десятичной в другую СС:

  • Целая часть — как обычно (деление с остатком).
  • Дробная часть — умножение на основание новой СС и запись целых частей результатов.
Пример:
0,62510 в двоичную:
0,625 × 2 = 1,25 (записываем 1)
0,25 × 2 = 0,5 (записываем 0)
0,5 × 2 = 1,0 (записываем 1)
0,62510 = 0,1012

4. Периодические дроби

В некоторых СС конечные десятичные дроби могут стать бесконечными периодическими.

Пример:
0,210 в двоичную:
0,2 × 2 = 0,4 (0)
0,4 × 2 = 0,8 (0)
0,8 × 2 = 1,6 (1)
0,6 × 2 = 1,2 (1)
...
0,210 = 0,(0011)2 (период 0011)

Обратный перевод периодической дроби:

Используем формулу суммы бесконечной геометрической прогрессии:

\(0,(ab)_p = \frac{ab_p} {p^2 - 1}\)
Пример:
\(0,(101)_2 = \frac{101_2}{2^3 - 1} = \frac{5}{7} ≈ 0.714_{10}\)

5. Быстрые переводы между 2-8-16 СС

  • Двоичная → Восьмеричная: Разбить на триады (справа), заменить на цифры 8-ричной СС.
  • Двоичная → Шестнадцатеричная: Разбить на тетрады (справа), заменить на цифры 16-ричной СС.
Примеры:
110101102 → 011 010 110 → 3268
110101102 → 1101 0110 → D616
Примечание: Для перевода между 8-ричной и 16-ричной системами удобно использовать двоичную систему как промежуточную.
Печать