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

Шестнадцатеричная система счисления: что такое HEX и как работать с числами

Зачем в числах используют буквы A–F, как переводить значения между системами счисления и выполнять арифметические операции

Разбор

22 июля 2026

Поделиться

Скопировано
Шестнадцатеричная система счисления: что такое HEX и как работать с числами

Содержание

    Системы счисления определяют, из каких символов будет состоять число и по каким правилам их объединяют.

    В десятичной системе используют десять цифр, в двоичной — две, в восьмеричной — восемь.

    Шестнадцатеричная система счисления (HEX, hexadecimal) использует 16 символов. Это цифры от 0 до 9 и буквы A, B, C, D, E и F. При этом A–F выполняют роль цифр. 

    Получается такой ряд из 16 символов:

    0123456789ABCDEF

    A соответствует десятичному числу 10, а F — числу 15. Регистр обычно не меняет значение. Например, FF и ff обозначают одно число.

    Напоминаем, что так как отсчет начинается с 0, символ F, значение которого равно 15, является шестнадцатым.

    F — наибольшая цифра шестнадцатеричной системы и последнее значение, которое в HEX можно записать одним символом. Следующее число, которое соответствует числу 16 в десятичной системе (16₁₀), записывают уже двумя символами — 10₁₆. Такое число является двухразрядным.

    Разряд — это позиция цифры в записи числа. Числа из одного символа называются одноразрядными, из двух — двухразрядными и т. д.

    Как устроены числа в шестнадцатеричной системе

    Шестнадцатеричная система является позиционной. Это значит, что значение каждого символа зависит не только от самого символа, но и от его местоположения в числе

    Сначала рассмотрим символы по алфавиту HEX, а после разберем принцип построения чисел.

    Алфавит шестнадцатеричной системы

    Алфавит системы счисления — это набор символов, с помощью которых записывают числа. Как помним, HEX состоит из набора символов 0123456789ABCDEF.

    Представление алфавита HEX в десятичном и двоичном формате:

    Десятичное числоHEXДвоичное представление
    000000
    110001
    220010
    330011
    440100
    550101
    660110
    770111
    881000
    991001
    10A1010
    11B1011
    12C1100
    13D1101
    14E1110
    15F1111

    После F для записи следующего числа требуется уже два разряда. Поэтому далее идут 10₁₆, 11₁₆, 12₁₆ и так далее до FF₁₆. После FF₁₆ появляется третий разряд, и следующее число записывается как 100₁₆.

    Как позиция символа влияет на его значение

    В позиционной системе значение символа зависит от разряда (позиции), в котором он находится. Это важно при переводе числа из одной системы счисления в другую.

    • В десятичной системе разряды соответствуют степеням числа 10, например:

    347₁₀ = 3 × 10² + 4 × 10¹ + 7 × 10⁰

    • В шестнадцатеричной системе используется тот же принцип, но разряды соответствуют степеням числа 16.

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

    Пример:

    1A₁₆ = 1 × 16¹ + 10 × 16⁰ = 26₁₀

    Здесь 1 означает одну группу из 16, а A — еще 10 единиц (так как A означает 10, а 16⁰ = 1).

    В числе A0₁₆ буква A стоит уже на позиции группы 16. Поэтому она означает десять групп по 16:

    A0₁₆ = 10 × 16¹ + 0 × 16⁰ = 160₁₀

    Главное правило — чем левее находится цифра, тем больше ее значение в числе:

    Как работает шестнадцатеричные числа
    Источник: автор статьи

    Как записывают шестнадцатеричные числа

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

    • В математической записи основание указывают нижним индексом:

    2A₁₆

    • Во многих языках программирования (Python, JavaScript, Java, C, C++, C# и Go) перед шестнадцатеричным числом обычно ставят префикс 0x, который показывает, что следующие символы нужно читать как число в системе с основанием 16

    То есть так программа поймет, что это не десятичное число, а шестнадцатеричное, и будет обрабатывать его по правилам HEX.

    Например, 0x2A означает шестнадцатеричное число 2A.

    • В некоторых вариантах ассемблера после числа добавляют суффикс h:

    2Ah

    • В веб-разработке перед шестнадцатеричной записью цвета используют знак #. Цвет записывают в формате #RRGGBB, где три пары цифр задают интенсивность красного, зеленого и синего.

    Например:

    Что значат цвета HEX
    Источник: автор статьи

    В записи #2A2A2A все три компонента имеют одинаковое значение, поэтому получается оттенок серого.

    • Номера символов Unicode также часто записывают в шестнадцатеричном формате. Перед кодом ставят обозначение U+

    U+0041 — код Unicode заглавной латинской буквы A.

    Важно, что конкретная программа или система распознает только те обозначения (суффиксы и префиксы), которые предусмотрены синтаксисом ее языка.

    HEX в информатике

    Компьютер хранит и обрабатывает данные в двоичном виде (нули и единицы). Человеку сложно читать и сравнивать длинные двоичные последовательности, поэтому их записывают в более компактном шестнадцатеричном формате.

    Одна цифра HEX соответствует четырем битам:

    1111 = F₁₆

    Две шестнадцатеричные цифры соответствуют восьми битам (или одному байту):

    11111111 = FF₁₆ = 255₁₀

    Длинную двоичную запись можно сократить. В HEX каждой группе из четырех битов соответствует одна цифра.

    Например:

    1010 1100 1111 0000₂ = ACF0₁₆

    HEX используют:

    • Для адресов памяти и низкоуровневых данных

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

    • В сетевых технологиях

    Например, IPv6-адреса записывают группами шестнадцатеричных цифр, разделенными двоеточиями. 

    • Для хешей и идентификаторов

    Результаты хеширования и некоторые идентификаторы часто отображают с помощью цифр 0–9 и букв A–F.

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

    Как перевести шестнадцатеричное число в десятичное

    Каждая позиция в HEX соответствует определенной степени числа 16. Мы уже знаем, что крайнему правому разряду соответствует 16⁰, следующему слева — 16¹, затем 16² и так далее.

    Для перевода нужно:

    1. Заменить буквы A–F их числовыми значениями от 10 до 15
    2. Определить степень числа 16 для каждого разряда, начиная с нуля справа. 
    3. Умножить каждую цифру на соответствующую степень числа 16
    4. Сложить полученные значения.

    Пример:

    Переведем число 2AF₁₆ в десятичную систему.

    В нем:

    • 2 находится в разряде 16².
    • A, то есть 10, находится в разряде 16¹.
    • F, то есть 15, находится в разряде 16⁰.

    Переведем число:

    2AF₁₆ = 2 × 16² + 10 × 16¹ + 15 × 16⁰ = 2 × 256 + 10 × 16 + 15 × 1 = 512 + 160 + 15 = 687₁₀

    Получается, что шестнадцатеричное число 2AF₁₆ соответствует десятичному числу 687.

    Как перевести десятичное число в шестнадцатеричное

    Чтобы перевести десятичное число в HEX, его последовательно делят на 16 и записывают остатки.

    Порядок такой:

    1. Разделить число на 16 и записать целую часть результата и остаток. 
    2. Полученное частное снова разделить на 16
    3. Продолжать деление, пока частное не станет равным нулю. 
    4. Остатки от 10 до 15 заменить буквами A–F
    5. Прочитать остатки снизу вверх. 

    Пример:

    Переведем число 254₁₀ в шестнадцатеричную систему.

    • 254 ÷ 16 = 15, остаток 14
    • 15 ÷ 16 = 0, остаток 15

    В HEX значение 14 обозначается буквой E, а 15 — буквой F.

    Остатки читают снизу вверх:

    15 заменяем на F,

    14 заменяем на E.

    Получается:

    254₁₀ = FE₁₆

    Проверим результат обратным переводом:

    FE₁₆ = 15 × 16¹ + 14 × 16⁰ = 15 × 16 + 14 = 240 + 14 = 254₁₀

    Значит, десятичному числу 254 соответствует шестнадцатеричное число FE₁₆.

    Как перевести двоичное число в шестнадцатеричное 

    Чтобы перевести двоичное число в HEX, его разбивают справа налево на группы по четыре бита. Для каждой такой вычисляют значение в десятичной системе и заменяют его соответствующей цифрой HEX.

    Пример:

    Разделим число 1011011110на группы по четыре бита, начиная справа:

    10 1101 1110

    В крайней левой группе не хватает двух битов, поэтому добавим слева нули:

    0010 1101 1110

    Теперь вычислим значение каждой группы. В группе из четырех битов позиции справа налево соответствуют числам 1, 2, 4 и 8.

    Первая группа:

    0010 = 0 × 8 + 0 × 4 + 1 × 2 + 0 × 1 = 2

    Вторая группа:

    1101 = 1 × 8 + 1 × 4 + 0 × 2 + 1 × 1 = 13

    В HEX число 13 обозначается цифрой D.

    Третья группа:

    1110 = 1 × 8 + 1 × 4 + 1 × 2 + 0 × 1 = 14

    В HEX число 14 обозначается цифрой E.

    Соединяем полученные цифры и получаем:

    1011011110 = 2DE₁₆

    Как перевести шестнадцатеричное число в двоичное

    Чтобы перевести число из HEX в двоичную систему, каждую шестнадцатеричную цифру заменяют соответствующей группой из четырех битов.

    Пример:

    Возьмем число 3A₁₆.

    Цифра 3 соответствует десятичному числу 3. Представим его как сумму значений двоичных разрядов 8, 4, 2 и 1:

    3 = 0 × 8 + 0 × 4 + 1 × 2 + 1 × 1

    Поэтому:

    3₁₆ = 0011

    Цифра A соответствует десятичному числу 10:

    10 = 1 × 8 + 0 × 4 + 1 × 2 + 0 × 1

    Поэтому:

    A₁₆ = 1010

    Соединяем полученные группы:

    3A₁₆ = 00111010= 111010

    Нули в начале можно опустить, так как они не меняют значение числа.

    Математические операции в шестнадцатеричной системе

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

    Сложение в шестнадцатеричной системе

    Шестнадцатеричные числа складывают справа налево. Если сумма в одном разряде равна 16 или больше, часть значения переносят в следующий разряд.

    Пример:

    Сложим A7₁₆ и 5C₁₆.

    1. Начинаем с крайнего правого разряда:

    7 + C = 7 + 12 = 19₁₀

    Десятичное число 19 в HEX записывается как 13₁₆. Поэтому в текущем разряде записываем 3, а 1 переносим в следующий разряд.

    1. Складываем оставшиеся цифры и перенесенную 1:

    A + 5 + 1 = 10 + 5 + 1 = 16₁₀

    Число 16 в HEX записывается как 10₁₆. Поэтому записываем 0, а единицу переносим в новый разряд слева.

    1. Получим:

    A7₁₆ + 5C₁₆ = 103₁₆

    Вычитание в шестнадцатеричной системе

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

    Пример:

    Вычтем 1F₁₆ из 3A₁₆.

    1. В крайнем правом разряде нужно вычесть F, то есть 15, из A, то есть 10. Поскольку 10 меньше 15, занимаем единицу из разряда слева.

    В результате к 10 прибавляется 16:

    10 + 16 = 26

    1. Теперь выполняем вычитание:

    26 − 15 = 11

    В HEX число 11 обозначается цифрой B.

    1. После заимствования в левом разряде вместо 3 остается 2:

    2 − 1 = 1

    1. Получается:

    3A₁₆ − 1F₁₆ = 1B₁₆

    Умножение и деление шестнадцатеричных чисел

    Умножение и деление выполняют по тем же правилам, что и в десятичной системе. Для небольших вычислений можно перевести числа в десятичную систему, выполнить операцию и записать результат в HEX.

    Пример с умножением:

    C₁₆ × 3₁₆ = 12₁₀ × 3₁₀ = 36₁₀ = 24₁₆

    Пример с делением:

    3C₁₆ ÷ 4₁₆ = 60₁₀ ÷ 4₁₀ = 15₁₀ = F₁₆

    Итоги

    • HEX — это шестнадцатеричная система счисления с символами 0–9 и A–F
    • Буквы A–F в ней выполняют роль цифр и представляют значения от 10 до 15
    • После F начинается запись уже двухразрядных чисел: 10₁₆, 11₁₆ и так далее. 
    • HEX — позиционная система, поэтому значение цифры зависит от ее места в числе. 
    • Разряды в HEX соответствуют степеням 16. Это 16⁰, 16¹, 16² и так далее. 
    • Шестнадцатеричные числа могут записываться как 2A₁₆, 0x2A, 2Ah. Цвета записываются как #2A2A2A
    • Одна цифра HEX соответствует четырем битам, поэтому HEX удобно использовать для компактной записи двоичных данных. 
    • HEX часто используют в программировании, при записи цветов, в адресах памяти, в Unicode, в IPv6, в хешах и идентификаторах. 
    • Перевод из HEX в десятичную систему выполняют через степени 16
    • Перевод из десятичной в HEX выполняют через последовательное деление на 16
    • Перевод между двоичной и шестнадцатеричной системами 1 цифра осуществляется по принципу HEX = 4 бита
    • Арифметические операции в HEX выполняются по тем же принципам, что и в десятичной системе, но с учетом основания 16.

    Разбор

    Поделиться

    Скопировано
    0 комментариев
    Комментарии