Пользователи, работа которых тесно связана с информационными технологиями, периодически могут сталкиваться с различными системами счисления. Однако не все в полной мере понимают, для чего они нужны и откуда появились.
Основные системы счисления
Под системой счисления понимают набор математических правил, который указывает на особенности записи чисел. Если углубиться в историю, окажется, что человечество на разных этапах развития разработали большое количество способов записи обычных чисел. Основное распространение получили два типа, далее они будут рассмотрены подробнее.
Непозиционные системы. Такие системы используют с древнейших времен, значение определенного символа не меняется при изменении позиции в числе. К примеру, в римской системе число V всегда означает 5, независимо от местоположения.
Позиционные системы. С ними мы сталкиваемся в повседневной жизни. Значение определенной цифры определяется ее положением в исходном числе. К примеру, в числе 555 у каждой пятерки разное значение – 500, 50 и 5.
Основные особенности систем счисления позволяют использовать их в разных областях. Позиционные системы облегчают расчеты – сложить 55 и 22 намного проще, чем LV и XXII в римской системе. Непозиционные системы сегодня используются достаточно редко, например, для указания веков или в нумерации разделов книги.
Далее будут рассмотрены обе системы счисления, их особенности и причины, по которым позиционные системы быстро вытеснили непозиционные. Также подробно описаны особенности конвертации между отдельными форматами.
Непозиционные системы счисления
Они формировались естественным образом в процессе эволюции человечества. Специалисты выделяю следующие факторы:
— еще на ранних этапах развития цивилизации требовался надежный способ учета вещей, астрономии, расчета при строительстве;
— в дальнейшем развитие письменности дало возможность фиксировать числовые значения;
— для упрощения счета люди начали использовать отдельные символы для записи чисел.
Поскольку определенные группы людей развивались независимо друг от друга, появилось большое количество непозиционных систем счисления, которые сильно отличались. Далее будут рассмотрены наиболее популярные платформы.
Единичная система счисления
Представляет собой простейший способ записи чисел, при котором используется только один символ, повторенный нужное количество раз. Это был интуитивно понятный способ подсчета, который активно использовался до развития основных элементов математики.
Для получения результата использовались подручные средства – узелки на веревке, камешки, веточки. Если требовалось сохранить результат на длительное время, использовались зарубки на дереве, насечки на камне и так далее. Поскольку такой способ интуитивно понятен, его можно встретит и сегодня, например, в играх для обозначения количества оставшихся жизней.
Однако такая система подходит только для простых арифметических операций. В процессе развития математики назрела необходимость перейти на более эффективный способ записи. Для этого стали группировать отдельные числа и заменять определенным символом.
Древнеегипетская десятичная система
Использовалось основание 10, система значительно повлияла на развитие древних египтян – использовалась при строительстве, в астрономии, торговле и других сферах. Для записи использовались особые символы – для 1, 10, 100, 1000 и так далее. Отдельный знак обозначал ноль, что позволяло, к примеру, указать полное погашение суммы при денежных операциях. Умели египтяне работать и с дробями, целая часть обозначалась при помощи отдельного иероглифа.
Римская система счисления
Используется запись чисел при помощи определенных букв латинского алфавита. Используется нестандартная схема со сложением и вычитанием значений используемых символов, при этом каждая буква обозначает определенное число. Основной набор символов: I (1), V (5), X (10), L (50), C (100), D (500) и M (1000).
В этом случае каждое число представляет собой последовательность символов, для записи используется набор исходных правил. Итоговое значение такого числа получается из значений всех входящих символов. К примеру, число 22 записывается как XXII (20 + 2 = 22).
Если меньший символ располагается слева от большего, его значение вычитается. К примеру, число 97 записывается как XCVII. Алгоритм следующий: из 100 (С) отнимается 10 (X), после чего к значению добавляется 5 (V) и 2 (II). Стоит учитывать, что в левой части может находиться только один меньший символ, значения в формате XXC недопустимы.
Славянская и греческая системы счисления
Представляют собой классические алфавитные системы записи чисел – все значение передаются при помощи букв. Славянская система использует кириллицу, греческая – греческий алфавит. Обе системы активно использовались в летописях, деловой переписке и религиозных текстах.
К примеру, в славянской системе буква «аз» соотносилась 1, «веди» — 2, за 10 была закреплена «и десятичное». На то, что буква используется в данный момент для записи числа, указывало выделение титлом (специальным надстрочным знаком).
Все числа записывались слева направо – от большего к меньшему. Данное правило не относилось к записи чисел от 11 до 19 – в этом случае десятки записывались после единиц. Эта особенность нашла отображение и в современном русском языке. К примеру, мы говорим «пятьдесят один», называя сначала десятки, а вот при озвучивании «двенадцать» сначала указываются единицы («две»), далее добавляется «числительное «надцать», которое обозначает прибавление к десяти.
Данная система быстро прижилась в обществе, поскольку люди сразу понимали, какие именно цифры имеются в виду.
Позиционные системы счисления
Непозиционные системы фактически заложили основу для дальнейшего развития математики, однако они имели ряд существенных недостатков.
— отсутствие универсальности. В системах используется разный набор символов, что осложняет взаимодействие на международном уровне;
— громоздкая запись. Для больших чисел требуется большое количество символов;
— сложность выполнения арифметических действий. К примеру, деление и умножение в римской системе предусматривает сложные вычисления в несколько этапов.
Позиционные системы лишены таких недостатков. Количество разрядов не ограничено, что позволяет записывать очень большие числа.
Позиционные системы, в свою очередь, принято делить на неоднородные (смешанные) и однородные. Далее они будут рассмотрены подробнее.
Однородные позиционные системы счисления
Это простая позиционная система, в которой используется единое основание для разрядов в рамках текущего числа. Итоговое значение числа определяется не только цифрами, но и их позицией. При этом каждая позиция имеет определенный вес, который рассчитывается по следующей схеме: основание системы возводится в степень, которая соответствует номеру позиции. Для получения итогового значения нужно возвести в нужную степень все цифры, после чего сложить результаты.
Наибольшее распространение получили позиционные системы: шестнадцатеричная, десятеричная, восьмеричная и двоичная.
Двоичная система счисления
Для представления чисел используются только два символа: 1 и 0. Каждая позиция такого числа представлено степенью двойки, начиная с нулевой. Счет идет справа налево. К примеру, число 41 в двоичной системе буде выглядеть как 101001. Для получения десятичного числа необходимо сложить степени двойки: 32+0+8+0+0+1 = 41.
Именно данная система получила широкое применение в современной вычислительной технике:
— надежность. Использование двух состояний снижает вероятность ошибок в процессе обработки и передачи закодированной информации;
— простота реализации. Электроника хорошо справляется с работой в режиме двух устойчивых состояний (есть ток/нет тока);
— экономичность. Для обработки таких сигналов можно использовать простые логические элементы, что упрощает создание схем.
Восьмеричная система счисления
В этом случае в набор входит восемь цифр в диапазоне 0-7. Значение каждого разряда умножается на степень числа 8. К примеру, 146 в восьмеричной системе можно разложить следующим образом: 1*82 +4*81 + 6*80 = 64 + 32 + 6 = 102 в десятичной системе.
Восьмеричная система изначально была создана для упрощения работы с двоичными числами, поскольку она обеспечивает более компактную запись.
В современных ПК восьмеричная система применяется достаточно редко, поскольку шестнадцатеричная система лучше подходит для работы с байтами – для записи одного байта достаточно двух шестнадцатеричных знаков. Такой формат особенно удобен для низкоуровневого программирования.
Десятеричная система счисления
Для записи чисел используется десять цифр (0-9), каждая позиция представляет степень десятки, принцип формирования аналогичен. Число 566 можно разложить следующим образом: 5*102+6+101+6*100. Также можно использовать более простой формат – 500+60+6.
Использование десятичной системы связано с естественными факторами – древние люди использовали для счета пальцы рук. Широкое распространение система получила на территории Индии еще в 5-6 веке нашей эры, далее ее начали использовать арабские математики, которые расширили ее и ввели ряд новых понятий. Далее обновленная система пришла уже в Европу. Арабские цифры были гораздо удобнее, поэтому быстро вытеснили римские.
Сегодня десятеричная система используется повсеместно – в банковском деле, технике, торговле и так далее.
Шестнадцатеричная система счисления
Для записи чисел используется 16 символов – цифры 0-9 и шесть первых букв латинского алфавита, которые используются для обозначения чисел от 10 до 15.
Шестнадцатеричная система хорошо подходит для компактного представления компьютерных данных, к примеру, в веб-разработке для обозначения цветов (формат #FF5633).
Смешанные системы счисления
Особый тип позиционных систем, в которых каждый разряд имеет собственное основание. Особенность заключается в том, что для определения веса каждой цифры необходимо вычислить произведение оснований для всех младших разрядов.
Для примера можно рассмотреть смешанную систему, в которой каждый разряд имеет собственное основание: первый разряд – 2, второй – 3, третий – 4. Для записи такой системы используется формат [2, 3, 4]. В этом случае для разложения числа 123 используется следующий алгоритм:
— цифра на первой позиции (1) умножается на произведение младших оснований: 1*(3*4) = 12;
— вторая цифра умножается на основание младшего разряда: 2*4 = 8;
— третья цифра умножается на 1: 3*1 = 3.
Для получения числа в десятичной системе необходимо получить сумму всех найденных значений: 12+8+3 = 23.
Самой древнейшей из смешанных систем считается вавилонская шестидесятеричная система. Используются символы в диапазоне 0-59, каждый разряд – степень числа 60. Текущее значение символа зависит от позиции, последующие разряды увеличивают число в 60 раз.

Для записи используются два дополнительных символа: горизонтальный клин для обозначения десятков и вертикальный для единиц. Числа всегда записываются справа налево, новый разряд при этом начинается после определенного набора этих символов.
Клин может выполнять две функции – обозначает единицу и число 60 со степенями (поэтому система получила такое название). Позиционный формат обусловлен тем, что для чисел больше 60 текущее значение символа определяется положением в наборе цифр.
В процессе развития торговли и науки появилась потребность в работе с дробными числами. Для этого первоначальная система была заметно доработана – были добавлены разряды после целой части. Это привело к появлению смешанной формы записи: для целой части используется шестидесятеричная система, а для представления каждого разряда дробной части используется деление на 60.
Несмотря на кажущуюся сложность, вавилонская система оказалось настолько эффективной, что используется и в некоторых современных приборах, например, в часах и GPS.