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

В статье простым языком и с практическими примерами объясняются системы счисления. Основное внимание уделено двум крупным классам: позиционным (значение цифры зависит от её позиции) и непозиционным (значение цифры постоянно, не зависит от позиции) системам.

Что такое система счисления?

Система счисления — это совокупность правил записи и обозначения чисел. Любая система имеет основание (radix, b) и набор цифр. Например, в десятичной системе основание равно 10, а набор цифр — от 0 до 9.

Разница между позиционными и непозиционными

В позиционных системах значение цифры зависит от её разрядной позиции. Например, в числе 507 цифра 5 обозначает сотни, 0 — десятки, 7 — единицы. В непозиционных системах значение цифры не меняется от позиции; числовое значение определяется суммой или правилами комбинации использованных знаков.

Непозиционные системы

  • Штриховая (tally) запись: |||| = 4, |||| ||| = 7. Каждый штрих равен 1; позиция несущественна.
  • Римские цифры: I=1, V=5, X=10, L=50, C=100, D=500, M=1000. Числа формируются правилами сложения (иногда вычитания): VIII = 5+3 = 8, IX = 10−1 = 9, XL = 50−10 = 40.
  • Древнеегипетская система: запись строится повторением знаков для единиц, десятков, сотен и т.д.; позиция роли не играет.

В непозиционных системах запись больших чисел получается длинной, а арифметические операции (особенно умножение/деление) усложняются.

Позиционные системы

Число трактуется как разложение по степеням основания:

(a_n a_{n-1} ... a_1 a_0)_b = a_n*b^n + a_{n-1}*b^{n-1} + ... + a_1*b + a_0
Условие: 0 ≤ a_i < b

Здесь b — основание системы; например, в десятичной b=10, в двоичной b=2, в шестнадцатеричной b=16. Цифра 0 в позиционных системах играет ключевую роль — это цифра, обозначающая отсутствие разрядной величины и выполняющая функцию заполнителя.

Распространённые позиционные системы
  • Десятичная (b=10): стандарт в быту, финансах и измерениях.
  • Двоичная (b=2): основа работы компьютеров и цифровой электроники (0/1).
  • Восьмеричная (b=8) и шестнадцатеричная (b=16): компактная запись групп битов, удобны в программировании.
  • Шестеричная (b=6), пятеричная (b=5), двадцатеричная (b=20), шестидесятеричная (b=60): встречаются в разных культурах и практиках (например, 60-ричная — во времени и угловых мерах).

Почему позиционные системы удобнее?

  1. Компактность записи: то же значение выражается меньшим числом цифр.
  2. Алгоритмизируемая арифметика: устойчивые процедуры сложения, вычитания, умножения и деления.
  3. Масштабируемость правил: при смене основания сохраняются общие принципы (разрядный вес, степени основания).

Почему арифметика в непозиционных системах сложнее?

  • Суммативный характер записи: значение строится накоплением цифр/знаков; умножение сводится к повторному сложению, что громоздко.
  • Субтрактивные правила: конструкции вроде IV, IX усложняют алгоритмы.
  • Отсутствие или редкость нуля: нет цифрового «пустого» разряда, труднее унифицировать вычисления.
Практическое сравнение
КритерийПозиционныеНепозиционные
Значение цифрыЗависит от позиции (разрядный вес)Постоянно, от позиции не зависит
Цифра 0Ключевая рольОбычно отсутствует или редка
АрифметикаАлгоритмизируема, прощеСложнее, опирается на набор правил
КомпактностьВысокаяНизкая
ПрименениеБыт, наука, вычислительная техникаИсторические/ритуальные записи, специальные обозначения

Рассмотрим несколько примеров:

  • Римская → десятичная: MCMLXXXIV = 1000 + (1000−100) + 50 + 10 + 10 + 10 + (5−1) = 1984.
  • Двоичная → десятичная: 11001012 = 64 + 32 + 4 + 1 = 10110.
  • Десятичная → шестнадцатеричная: 25510 → (FF)16.
  • Десятичная → двоичная (дробь): 0.110 ≈ 0.0001100110011…2 (периодическая).

Бонус: типичные ошибки

  • Цифры, превышающие основание: в двоичной системе цифры 2 и 3недопустимы и т.п.
  • Раннее прекращение перевода дробей: заранее задавайте число шагов и требуемую точность, чтобы контролировать погрешность.
  • Злоупотребление субтракцией в римской записи: IL (49) — некорректно, стандартная форма — XLIX.

Непозиционные системы интересны с историко-культурной точки зрения, но в современной науке и технике позиционные системы объективно удобнее. Их сильные стороны — разрядный (позиционный) вес, наличие цифры 0 и алгоритмизируемая арифметика. Знание методов перевода между основаниями упрощает повседневную работу в программировании и инженерии.

Автор: Najmiddin Nazirov