Справочная таблица шестнадцатеричных цифр
Каждая шестнадцатеричная цифра соответствует одному значению от нуля до пятнадцати и ровно четырём двоичным цифрам.
| Hex-цифра | Десятичное значение | Двоичное (4 бита) |
|---|---|---|
| 0 | 0 | 0000 |
| 1 | 1 | 0001 |
| 4 | 4 | 0100 |
| 7 | 7 | 0111 |
| 9 | 9 | 1001 |
| A | 10 | 1010 |
| C | 12 | 1100 |
| F | 15 | 1111 |
- Ввод ограничен 12 шестнадцатеричными цифрами на операнд, а результат должен оставаться в диапазоне точных целых чисел IEEE 754 двойной точности (2⁵³ − 1); более крупные результаты отклоняются, а не округляются.
- Вычитание может дать отрицательный результат, который выводится со знаком минус; представление в дополнительном коде здесь не используется.
Что такое шестнадцатеричная арифметика?
Шестнадцатеричная система — позиционная система счисления с основанием 16: каждая позиция соответствует степени числа 16, а шестнадцать цифровых символов — это 0–9, а затем A (десять), B (одиннадцать), C (двенадцать), D (тринадцать), E (четырнадцать) и F (пятнадцать). Шестнадцатеричное число 1A означает 1×16 + 10 = 26 в десятичной записи, а 2F — это 2×16 + 15 = 47.
Арифметика в шестнадцатеричной системе подчиняется тем же правилам, что и десятичная, только перенос и заём происходят при шестнадцати, а не при десяти. Сложение шестнадцатеричных цифр A и F даёт двадцать пять, то есть 19 в hex: пишем 9, один в уме. Большинству удобнее перевести числа в десятичную систему, посчитать и вернуться обратно — именно так калькулятор и работает внутри.
Своё место в вычислительной технике шестнадцатеричная система заняла благодаря равенству 16 = 2⁴: одна hex-цифра соответствует ровно четырём двоичным, поэтому байт (8 бит) — это всегда две шестнадцатеричные цифры, от 00 до FF. Адреса памяти, значения цветов, контрольные суммы и дампы байтов принято записывать в hex, часто с префиксом 0x.
Как пользоваться этим hex-калькулятором
- Введите первое шестнадцатеричное число (цифры 0–9 и A–F; необязательный префикс 0x допускается).
- Выберите операцию: сложение, вычитание, умножение — или перевод, который обрабатывает только первое число.
- Для арифметической операции введите второе hex-число.
- Прочитайте результат в шестнадцатеричной, десятичной и двоичной записи. В режиме перевода выводятся десятичная и двоичная формы первого числа.
Математика шестнадцатеричной арифметики
Каждый операнд вычисляется поцифренно по степеням числа 16, чтобы получить его десятичное значение; операция выполняется над десятичными значениями; затем результат снова записывается в системе с основанием 16 путём последовательного деления.
Разбор примера: 1A + 2F. В десятичной записи 1A = 26, а 2F = 47, значит сумма равна 73. Обратный перевод: 73 ÷ 16 = 4, остаток 9, поэтому 73 — это 49 в шестнадцатеричной записи и 1001001 в двоичной. В столбик получается то же самое поцифренно: A + F = 25 = 19₁₆, пишем 9, один в уме; затем 1 + 2 + 1 = 4 — получаем 49₁₆.
Частые ошибки
- Переносить при десяти вместо шестнадцати, складывая hex-цифры вручную: A + F — это 19₁₆ (пишем 9, один в уме), а не 25.
- Читать шестнадцатеричные числа как десятичные: 10₁₆ — это шестнадцать, а не десять, а 100₁₆ равно 256.
- Путать букву O с цифрой 0 или строчную l с 1 при переписывании hex-значений.
- Забывать, что байт — это ровно две шестнадцатеричные цифры: отбрасывание ведущего нуля (0x0F → F) численно безобидно, но нарушает запись фиксированной ширины.
Часто задаваемые вопросы
Как сложить два шестнадцатеричных числа?
Складывайте по столбцам справа налево, точно как в десятичной системе, но выполняйте перенос, когда столбец достигает шестнадцати. Для 1A + 2F: A (10) + F (15) = 25 = 16 + 9, поэтому пишем 9 и один в уме; затем 1 + 2 + 1 = 4. Результат — 49 в hex, то есть 73 в десятичной записи.
Что означает 0x перед числом?
Префикс 0x помечает число как шестнадцатеричное, отличая его от десятичного. Он пришёл из языка C и сегодня используется практически повсеместно: 0x1A означает шестнадцатеричное 1A, то есть 26 в десятичной записи. Этот калькулятор принимает hex-ввод как с префиксом, так и без него.
Как перевести hex в десятичную систему?
Умножьте значение каждой шестнадцатеричной цифры на 16 в степени, равной номеру её позиции (счёт с 0 справа), и сложите. Для 2F: 2×16 + 15×1 = 47. Для 1A3: 1×256 + 10×16 + 3×1 = 419. Буквы A–F обозначают значения 10–15.
Как перевести hex в двоичную систему?
Замените каждую шестнадцатеричную цифру её четырёхбитным двоичным эквивалентом: 2F превращается в 0010 1111. Такой поцифренный приём работает, потому что 16 = 2⁴, и никаких вычислений не требуется — именно поэтому шестнадцатеричная запись служит краткой формой для двоичных данных.
Работает ли калькулятор с отрицательными шестнадцатеричными числами?
Вычитание может дать отрицательный результат, который выводится с ведущим знаком минус (например, 5 − A = −5). Калькулятор не использует дополнительный код — соглашение фиксированной разрядности, применяемое процессорами внутри, где одна и та же комбинация битов может означать либо большое беззнаковое значение, либо отрицательное знаковое.
Источники
- Knuth DE. The Art of Computer Programming, Volume 2: Seminumerical Algorithms, 3rd edition, Addison-Wesley, 1997 — radix arithmetic and conversion.
- IEEE Std 754-2019. IEEE Standard for Floating-Point Arithmetic — exact-integer limits of double precision.