Позиционная система счисления: от теории к практике

Иван Корнев·07.05.2026·5 мин

Позиционная система счисления — это метод записи чисел, при котором значение каждой цифры зависит от её места (позиции) в ряду. Вес разряда определяется степенью основания системы. Например, в привычной нам десятичной системе цифра «5» в числе 501 означает пять сотен ($5 \times 10^2$), а в числе 15 — пять единиц ($5 \times 10^0$). Это отличает её от непозиционных систем (как римская нумерация), где символ всегда имеет фиксированное значение.

Ключевая идея: Одно и то же числовое значение можно записать разными наборами символов, если изменить основание системы. Компьютеры используют двоичную систему (основание 2), потому что электронике проще различать два состояния: «ток есть» (1) и «тока нет» (0).

Основные понятия: основание и алфавит

Любая позиционная система характеризуется двумя параметрами:

  1. Основание (база) — количество уникальных символов, используемых для записи чисел. Обозначается как $B$.
  2. Алфавит цифр — набор символов от $0$ до $B-1$.
СистемаОснование ($B$)Используемые символыГде применяется
Двоичная20, 1Работа процессоров, логика
Восьмеричная80–7Старые Unix-системы, права доступа
Десятичная100–9Повседневная жизнь, финансы
Шестнадцатеричная160–9, A–FЦвета в веб-дизайне, адреса памяти

В системах с основанием больше 10 после цифры 9 используются буквы латинского алфавита. Например, в шестнадцатеричной системе: $A=10, B=11, ..., F=15$.

Математическая суть: развернутая форма записи

Любое число $N$ в системе с основанием $B$ можно представить в виде суммы произведений цифр на степени основания. Позиции отсчитываются справа налево, начиная с нуля.

Формула выглядит так: $$ N = a_n \cdot B^n + a_{n-1} \cdot B^{n-1} + ... + a_1 \cdot B^1 + a_0 \cdot B^0 $$

Где $a_i$ — это цифра на позиции $i$.

Пример для десятичного числа 345: $$ 345_{10} = 3 \cdot 10^2 + 4 \cdot 10^1 + 5 \cdot 10^0 $$ $$ 345_{10} = 300 + 40 + 5 $$

Пример для двоичного числа $101_2$: $$ 101_2 = 1 \cdot 2^2 + 0 \cdot 2^1 + 1 \cdot 2^0 $$ $$ 101_2 = 4 + 0 + 1 = 5_{10} $$

Эта формула является универсальным ключом для перевода любого числа из любой системы в десятичную.

Алгоритмы перевода между системами

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

Используйте формулу развернутой записи, описанную выше. Умножьте каждую цифру на основание в степени её позиции и сложите результаты.

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

Применяется метод последовательного деления:

  1. Делите исходное десятичное число на основание новой системы ($B$).
  2. Запоминайте остаток от деления.
  3. Продолжайте делить частное от предыдущего шага на $B$, пока частное не станет равно 0.
  4. Запишите остатки в обратном порядке (последний полученный остаток будет первой цифрой нового числа).

Лайфхак для проверки: При переводе в двоичную систему остатки будут только 0 или 1. При переводе в шестнадцатеричную остатки от 10 до 15 заменяйте на буквы A–F.

Пример: Перевод числа $25_{10}$ в двоичную систему

ШагДелимоеДелительЧастноеОстаток
1252121
212260
36230
43211
51201

Читаем остатки снизу вверх: $11001_2$. Проверка: $16 + 8 + 0 + 0 + 1 = 25$. Верно.

Почему компьютеры используют двоичную и шестнадцатеричную системы

Человеку удобна десятичная система из-за количества пальцев на руках. Компьютеру же важна надежность и простота реализации.

  1. Двоичная система (Binary): Идеальна для электроники. Транзистор может быть либо открыт (1), либо закрыт (0). Помехоустойчивость максимальна: легко отличить наличие напряжения от его отсутствия. Однако запись больших чисел в двоичном виде становится очень длинной и неудобной для чтения человеком.
  2. Шестнадцатеричная система (Hex): Используется как «компактный язык» для программистов. Одна шестнадцатеричная цифра ровно соответствует четырем двоичным разрядам (тетраде).
    • Пример: Байт 1111 1111 в двоичной системе записывается как FF в шестнадцатеричной. Это сокращает длину записи в 4 раза без потери информации.

Частая ошибка: Не путайте основание системы с количеством разрядов. Основание 16 не означает, что число может иметь только 16 цифр. Оно означает, что для записи одного разряда доступно 16 вариантов символов.

Частые ошибки при работе с системами счисления

  • Забытый порядок остатков: При переводе из десятичной системы многие записывают остатки в прямом порядке (как они получались), а не в обратном. Всегда читайте результат «снизу вверх».
  • Неверная степень нуля: Помните, что самый правый разряд имеет степень $0$, а не $1$. $B^0$ всегда равен 1.
  • Использование недопустимых цифр: В двоичной системе не может быть цифры 2. В шестнадцатеричной не может быть буквы G. Если такая цифра встретилась в расчете, значит, допущена ошибка в делении или подборе.

FAQ

Зачем нужно знать другие системы счисления, если есть калькулятор? Понимание принципов необходимо для программирования, работы с сетями (IP-адресация), криптографии и отладки кода. Калькулятор дает ответ, но не помогает понять структуру данных.

Может ли основание системы быть дробным или отрицательным? Теоретически существуют системы с отрицательным или комплексным основанием, но в практической информатике и повседневной жизни используются только целые положительные основания ($B \ge 2$).

Как быстро перевести из двоичной в восьмеричную или шестнадцатеричную? Группируйте биты:

  • Для восьмеричной: разбивайте двоичное число на группы по 3 цифры справа налево.
  • Для шестнадцатеричной: разбивайте на группы по 4 цифры справа налево. Каждую группу заменяйте соответствующей цифрой.