Теория: Принципы работы систем счисления
В информатике и математике для записи чисел используются специальные правила и символы. Способ представления чисел с помощью фиксированного набора знаков называется системой счисления. В зависимости от того, влияет ли местоположение цифры в тексте на её числовое значение, все системы разделяют на два типа.
- Непозиционная система счисления — это система, в которой количественное значение цифры является постоянным и абсолютно не зависит от её позиции в записи числа.
Ярким примером служит римская система, где вместо привычных цифр применяются латинские буквы. Число 240 в ней записывается как CCXL. Буква X здесь всегда обозначает десять, а C — сто, в каком бы месте строки они ни находились. В непозиционных системах счисления позиция знака не влияет на его значение. Из-за этого выполнять письменные вычисления с большими числами крайне сложно, поэтому в современной науке такие системы почти не используются.
- Позиционная система счисления — это система, в которой количественное значение каждой цифры полностью зависит от её места (позиции) в числе.
В таких системах позиция цифры имеет решающее значение и определяет её текущую величину. Нам всем с детства знакома десятичная система. Если сместить цифру всего на один шаг влево, её значение изменится. Помимо десятичной, в компьютерных науках активно применяются двоичная, восьмеричная и шестнадцатеричная системы.
Основание и алфавит системы счисления
Каждая позиционная система обладает своим основанием. Основание — это общее количество цифр или букв, которые используются в данной системе для записи чисел. Полный набор этих символов называется алфавитом системы счисления. Следовательно, количество знаков в алфавите всегда строго равно основанию системы.
Самое маленькое возможное основание имеет двоичная система. В её алфавит входят всего две цифры: 0 и 1. Когда основание системы становится больше десяти, обычных арабских цифр для записи начинает не хватать. В этом случае алфавит искусственно расширяют за счет заглавных букв латинского алфавита. Например, в шестнадцатеричной системе после цифры 9 по порядку идут буквы A, B, C, D, E, F. Буква A заменяет число 10, а последняя буква F заменяет число 15.
Основные системы счисления и сфера их применения
В компьютерной технике и программировании традиционно выделяют четыре главные системы счисления:
- Десятичная система. Использует цифры от 0 до 9. Это основная система для человека, которая применяется повсеместно в быту, экономике и расчетах.
- Двоичная система. Состоит только из нулей и единиц. Это внутренний язык компьютера. Электронные схемы процессора могут легко различать два физических состояния: есть электрический ток (единица) или тока нет (ноль).
- Восьмеричная система. Включает цифры от 0 до 7. Раньше она использовалась в старых компьютерах для сокращения длинных двоичных кодов, а сейчас встречается при настройке прав доступа к файлам в операционных системах Linux.
- Шестнадцатеричная система. Содержит цифры от 0 до 9 и буквы от A до F. Она необходима программистам для компактной записи адресов памяти компьютера, кодов цветов в веб-дизайне и уникальных номеров сетевых устройств.
Развернутая форма записи числа
Чтобы понять, как устроен перевод между системами счисления, необходимо познакомиться с развернутой формой числа. Любое число можно представить в виде суммы его цифр, умноженных на основание системы в определенных степенях. Каждой позиции цифры присваивается свой номер — индекс разряда, который отсчитывается справа налево начиная с нуля.
В знакомой нам десятичной системе значение цифры увеличивается ровно в 10 раз при переходе на каждый следующий разряд влево. Возьмем обычное число 444 и запишем его в развернутом виде:
44410 = 4 ⋅ 102 + 4 ⋅ 101 + 4 ⋅ 100 = 400 + 40 + 4
В двоичной системе развернутая форма строится абсолютно так же, так как любое правило позиционных систем универсально. Единственное отличие заключается в том, что вместо десятки используются степени двойки. Распишем двоичное число 1101111002:
1101111002 = 1 ⋅ 28 + 1 ⋅ 27 + 0 ⋅ 26 + 1 ⋅ 25 + 1 ⋅ 24 + 1 ⋅ 23 + 1 ⋅ 22 + 0 ⋅ 21 + 0 ⋅ 20 = 44410
Если математически вычислить эту сумму степеней, мы получим итоговое значение в десятичной системе. Таким образом, развернутая форма является прямым способом перевода любого числа в привычную нам десятичную систему.
Интересный факт: почему мы считаем десятками?
Несмотря на то что десятичная система кажется нам единственно возможной и естественной, её выбор обусловлен исключительно анатомией человека. Первым вычислительным инструментом людей были пальцы рук, которых у человека ровно десять. Если бы у людей на руках было по четыре пальца, человечество гарантированно развивалось бы в рамках восьмеричной системы счисления, а все правила математики остались бы точно такими же.
Для детального изучения практической стороны этого вопроса можно воспользоваться интерактивным калькулятором, который наглядно демонстрирует пошаговый процесс перевода чисел с отображением всех промежуточных вычислений. Если же вам требуется подробно ознакомиться с особенностями, историей и правилами работы каждого отдельного базиса, подробный теоретический материал по каждой системе счисления доступен в разделе системы счисления теория.