Баннер мобильный (1) Пройти тест

Система счисления

Глоссарий

12 марта 2024

Поделиться

Скопировано

Содержание

    Система счисления — это способ, которым записывают и представляют числа. Самая распространенная в нашем обществе — десятичная система, в которой используют цифры от 0 до 9. Но есть и другие системы счисления, их чаще всего используют в информатике и программировании.

    У большинства используемых систем счисления есть основание. Так называют число, на котором начинается другой разряд. Например, для десятичной системы это число 10 — первое, которое начинают записывать двумя цифрами, а не одной. Потом разряд меняется на числе 100 — десять десяток. И так далее.

    Еще у систем счисления есть алфавит — набор цифр, которые используют в той или иной системе. В той же привычной нам десятичной системе алфавит состоит из цифр от 0 до 9, а дальше уже приходится комбинировать несколько цифр. У систем с бо́льшим основанием алфавит может быть более длинным, поэтому для «дополнительных» цифр придумывают новые обозначения. Например, в шестнадцатеричной системе наравне с привычными цифрами используют буквы от A до F.

    Считается, что десятичная система стала основной, потому что в древности люди для подсчета предметов загибали пальцы. Пальцев у человека десять, и это стало удобной основой — люди стали считать вещи десятками.

    Зачем нужны системы счисления

    По сути, система счисления — это просто способ, которым записывают число. Одно и то же число в разных системах может выглядеть по-разному, но при этом его суть останется прежней.

    Например, в десятичной системе счисления число выглядит как 20. В шестнадцатеричной — как 14. А в римской записи — как XX. Да, римская запись чисел — тоже система счисления.

    Изначально разные системы счисления появились в разных обществах в зависимости от их особенностей — те же римские и арабские цифры. В современном мире назначение у них немного другое. Дело в том, что люди привыкли мыслить десятками, а вот компьютеры — нет. Компьютеры изначально воспринимают числа в двоичной системе счисления, в которой существует только две цифры: 0 и 1. Всё, что больше единицы, уже считается числом из двух и более разрядов.

    Для десятичной системы числовой ряд выглядит так: 0, 1, 2, 3, 4, 5, 6… А для двоичной — так: 0, 1, 10, 11, 100, 101, 110… Позже мы разберем, как это работает. 

    Еще для компьютеров удобны восьмеричная и шестнадцатеричная системы счисления, основания которых — 8 и 16 соответственно. Мы тоже рассмотрим их позже. Реже применяются другие системы: троичная, шестеричная, двенадцатеричная и так далее.

    Кто и для чего использует системы счисления

    Для компьютеров двоичная, шестнадцатеричная и другие системы счисления естественнее, чем десятичная. Поэтому и людям иногда приходится пользоваться ими при работе с вычислительной техникой. Вот несколько примеров:

    • цвета в формате RGB описывают числами в шестнадцатеричной системе. Например, белый — это #FFFFFF, а черный — #000000. Да, F в этом случае — тоже цифра;
    • символы в разных кодировках, например ASCII или UTF-8, тоже описывают числами в шестнадцатеричном формате. Иногда их же представляют в виде двоичных чисел;
    • в некоторых языках программирования, особенно в низкоуровневых вроде ассемблера, приходится работать с данными на уровне бит и байт — а способы хранения данных тесно связаны с двоичной и восьмеричной системами счисления.

    Разработчики, которые имеют дело только с высокоуровневыми языками вроде JavaScript, как правило, редко сталкиваются с системами счисления. Но понимать, как они устроены, айтишнику всё равно нужно — чтобы лучше разбираться в том, как функционируют компьютеры.

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

    Системы счисления делятся на две большие группы: позиционные и непозиционные. Расскажем, что это значит и чем они различаются.

    Непозиционные. Так называют системы, в которых не важна позиция цифры в числе. Где бы цифра ни находилась, она всегда имеет одно и то же значение. Самый яркий пример — унарная система счисления, она же единичная. Ее даже иногда выделяют в отдельный вид. В ней существует только одна цифра — 1. Поэтому, например, число 5 будет записываться как 11111. Если поменять единицы местами — ничего не изменится.

    Непозиционные системы счисления считаются самыми древними. Они возникли, когда люди впервые начали что-то подсчитывать и использовали для этого палочки, узелки или собственные пальцы. Позже они начали «группировать» цифры в числа, и возникли позиционные системы счисления.

    Второй пример непозиционной системы, менее очевидный, — римская запись. Символ X всегда будет означать десятку, а символ V — пятерку, в каком бы месте их ни поставили. Даже в числах вроде IV, где I перед V означает «-1», I всё равно будет единицей, а V — пятеркой. От положения цифры зависит только ее знак, но не ее вес.

    Непозиционные системы используются редко. В них нет нуля, нет дробных чисел и других инструментов, которые бывают важны в современных вычислениях.

    Позиционные. Сюда относятся десятичная, двоичная и большинство других современных систем счисления. В таких системах есть разряды, зависящие от позиции. Значение цифры меняется в зависимости от того, в каком месте она находится. Например, в числе 15 пятерка означает «пять единиц», а в числе 54 — «пять десятков».

    Двоичная, восьмеричная и шестнадцатеричная система тоже позиционные. В целом такие системы используют чаще, чем непозиционные, за исключением некоторых узких сфер. Например, в некоторых комбинаторных расчетах используют непозиционную биномиальную систему — она основана на биноме Ньютона.

    Позиционные системы счисления в свою очередь делятся на две категории — однородные и смешанные.

    • Однородные системы — такие, в которых правила записи одинаковые для всех разрядов. В каждом разряде можно использовать один и тот же алфавит. Десятичная система именно такая. И в единицах, и в десятках, и в сотнях или тысячах мы пользуемся цифрами от 0 до 9.
    • Смешанные системы — такие, где у разных разрядов различаются правила записи или даже основание. Например, система подсчета времени. У разряда «минуты» основание 60, и минуты можно обозначать числами от 0 до 59. На 60 число переходит в разряд «часы». А у разряда «часы» основание 24, и количество часов можно обозначать цифрами от 0 до 23. На 24 число переходит в разряд «сутки». И так далее.

    Смешанные системы используют реже, чем однородные — исключением можно назвать разве что подсчет времени. Но, например, смешанной системой считается факториальная: 2! — это 2, 3! — уже 6, а 4! — 24. Видно, что основание меняется, а сама система нелинейная.

    Распространенные системы счисления в информатике

    Практически все системы, которые используют в компьютерной технике, — позиционные и однородные. Как правило, у них четное основание, которое соответствует какой-либо из степеней двойки. Это связано с особенностями хранения данных в памяти компьютера. Рассмотрим три наиболее популярных в информатике системы счисления: двоичную, восьмеричную и шестнадцатеричную.

    Двоичная. Это система с основанием 2 и алфавитом, который состоит всего из двух цифр — 0 и 1. Необходимость использовать двоичную систему появилась из-за того, как компьютеры представляют информацию: в виде бит. Бит может принимать только значение «0» или «1» — «тут нет единицы информации» или «тут есть единица информации».

    • 0 означает ноль, отсутствие информации.
    • 1 означает единицу, например записанную в какую-то ячейку памяти.
    • Цифры 2 в системе нет. Если число достигает значения 2, оно переходит в другой разряд и записывается как 10 — одна двойка и ноль единиц. Соответственно, число 3 будет записываться как 11 — одна двойка и одна единица.
    • Дальше разряды увеличиваются по тому же принципу. Число 4 — это 100, то есть две двойки и 0 единиц. Число 8 — 1000, и так далее. Каждая новая степень двойки — новый разряд.

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

    Восьмеричная. Эту систему используют чуть реже, чем двоичную и шестнадцатеричную. Чаще всего ее упоминание можно встретить при работе с низкоуровневыми языками программирования, которые близки к «железу» и способны обрабатывать данные напрямую. Компьютеры объединяют части бинарного кода в блоки по 8 двоичных цифр — байты. Отсюда появилась и необходимость работать с восьмеричной системой.

    • Основа системы счисления — 8. Это значит, что от 0 до 7 цифры идут как обычно, а когда число доходит до 8, начинается другой разряд и число записывается как 10.
    • Соответственно, число 9 будет записываться как 11, а число 10 — как 12.
    • Число 16 в восьмеричной системе записывается как 20, потому что шестнадцать — это два раза по восемь. И так далее.
    • Число 64 в восьмеричной системе будет выглядеть как 100, потому что это восемь раз по восемь.

    Шестнадцатеричная. С этой системой счисления сталкиваются не только разработчики, но и, например, дизайнеры — в ней кодируются цвета RGB. Еще в этой системе записываются коды символов во многих кодировках. Основание шестнадцатеричной системы — число 16. Оно больше десяти, поэтому в алфавите появляются дополнительные цифры, которые обозначают буквами.

    • От 0 до 9 цифры идут как обычно. Но на десяти разряд еще не меняется, поэтому для обозначения десятки нужна новая цифра. В качестве этой «цифры» используют латинскую букву A.
    • Соответственно, «цифра» 11 — это B, 12 — C, и так далее до F, которая обозначает «цифру» 15.
    • Когда счет доходит до шестнадцати, разряд меняется. Следующее число после F в шестнадцатеричной системе — 10.
    • Числа в шестнадцатеричной системе выглядят меньше, чем в десятичной. Например, 100 в шестнадцатеричной системе — это 16 раз по 16, то есть 16 в квадрате. В десятичной системе это число 256.
    • Цифры в виде букв могут встречаться в начале, конце или середине числа. Например, 1A — это 26. Единица обозначает один раз по шестнадцать, а A — «цифру» десять.

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

    Иногда число в одной системе счисления нужно представить в другой. Для этого используют специальные алгоритмы, чтобы упростить задачу и не высчитывать разряды вручную.

    Перевод из десятичной системы в другую. Алгоритм такой: нужно шаг за шагом делить число в десятичной системе на основание той системы, в которую мы его переводим. Это делается до тех пор, пока исходное число не станет равным 0. Остаток от деления — это цифра в новом числе. Остатки записывают начиная с последнего и заканчивая первым и так получают число в нужной системе счисления.

    Например, число 13 в десятичной системе мы хотим перевести в двоичную. 

    1. Мы делим 13 на 2 — получаем 6, остаток 1. 
    2. Потом делим 6 на 2 — получаем 3, остаток 0. 
    3. Потом делим 3 на 2 — получаем 1, остаток 1. 
    4. Потом делим 1 на 2 — получаем 0, остаток 1.
    5. Исходное число стало равным нулю — значит, мы закончили. Теперь записываем остатки в обратном порядке: 1, 1, 0, 1. Выходит число в двоичной системе — 1101.

    Перевод из любой системы в десятичную. Тут способ немного более запутанный, но на самом деле несложный. Нужно взять число в нужной системе счисления и пронумеровать его разряды с конца, начиная с 0. Самая последняя цифра — нулевой разряд, вторая с конца — первый разряд, и так далее. Затем каждую из цифр нужно умножить на основание системы счисления, которое предварительно возвели в степень номера разряда. Полученные числа нужно сложить.

    Например, есть число 93 в шестнадцатеричной системе счисления. Мы хотим перевести его в десятичную.

    1. Нумеруем разряды числа. У цифры 9 номер 1, у цифры 3 номер 0.
    2. Основание системы — 16. 16 в первой степени — это 16, а 16 в нулевой степени — это 1.
    3. Цифру 9 мы умножаем на 16, а цифру 3 — на 1. Получаем числа 144 и 3.
    4. Складываем 144 и 3, получаем число 147 в десятичной системе счисления.

    Еще существуют алгоритмы для перевода дробных чисел или для перевода между системами счисления, отличными от десятичной. Но мы пока остановимся на этих двух. Вы можете изучить способы перевода подробнее в туториалах и на курсах.

    Как изучить системы счисления

    Часто системы счисления проходят в школе на уроках информатики или математики. Но не всегда эту тему включают в программу. Тем не менее это одно из базовых понятий компьютерных наук — для успешной карьеры в IT лучше понимать, что такое системы счисления и как они работают. Вы можете воспользоваться онлайн-учебниками, статьями и туториалами или бесплатными курсами по основам информатики. Так как тема считается базовой, информации по ней много, в том числе ориентированной на новичков.

    Поделиться

    Скопировано

    0 комментариев

    Комментарии