Шестнадцатеричный калькулятор

Складывайте, вычитайте, умножайте и делите шестнадцатеричные числа, переводите в десятичную и двоичную системы и читайте RGB-коды. Шестнадцатеричный калькулятор показывает каждый перенос в base 16.

01 калькулятор

Результаты обновляются при вводе. Ctrl/Cmd+Enter копирует основной результат.

Результат

    Показать решение

      Шестнадцатеричный калькулятор складывает, вычитает, умножает и делит шестнадцатеричные значения, переводит между hex, десятичной и двоичной системами и форматирует результаты с необязательным префиксом 0x. Цифры от 0 до 9 и от A до F, где A равно 10, а F равно 15. Разобранная арифметика использует те же правила переноса и заёма, что и десятичная, с порогом 16 вместо 10, чтобы цветовые каналы и адреса памяти можно было проверить без отдельного черновика.

      Все расчёты выполняются в браузере. Ничего из введённого не отправляется на сервер.

      Сложение, вычитание, умножение и деление шестнадцатеричных чисел

      Concept diagram: Входы leads to Сложение, вычитание, умножение и деление… leads to РезультатВходыСложение, вычитание,умножение и деление…Результат
      Сложение, вычитание, умножение и деление шестнадцатеричных чисел.

      Шестнадцатеричная арифметика это столбцовая математика в base 16 с цифрами от 0 до 9 и от A до F. Введите две hex-строки, выберите операцию, и Шестнадцатеричный калькулятор вернёт hex-результат с десятичным подтверждением рядом. Буквенные цифры можно вводить в любом регистре; вывод нормализуется к верхнему регистру, если переключатель стиля не задаёт иное.

      Перенос срабатывает, когда столбец достигает 16 или больше. Заём берёт 16 у следующей старшей цифры. Умножение и деление используют ту же длинную схему, что и десятичная система, с промежуточными произведениями из таблицы умножения hex. Цифры вне диапазона 0-9 и A-F отклоняются до начала операции.

      Преобразование шестнадцатеричного числа в десятичное

      Scale bar: 1 шестнадцатеричное equals 2.68 десятичное1 шестнадцатеричное2.68 десятичное
      Преобразование шестнадцатеричного числа в десятичное.

      Позиционное разложение умножает каждую hex-цифру на степень 16. Крайний правый разряд это 16⁰ (единицы), затем 16¹ (шестнадцатки), 16² (256), 16³ (4096) и выше по необходимости. Буквенные цифры сначала переводятся в десятичные значения: A=10, B=11, C=12, D=13, E=14, F=15.

      Для 2F:

      2 F
      │ └─ 15 × 16⁰ = 15
      └───  2 × 16¹ = 32
                      = 47

      FF это 15×16 + 15 = 255, максимальное беззнаковое 8-битное значение и знакомый полный канал в RGB-тriple. Калькулятор печатает разложение для каждого преобразования, чтобы ошибка в букве была замечена рано.

      Преобразование десятичного числа в шестнадцатеричное

      Scale bar: 1 десятичное equals 1.38 шестнадцатеричное1 десятичное1.38 шестнадцатеричное
      Преобразование десятичного числа в шестнадцатеричное.

      Повторное деление на 16 даёт hex-цифры как остатки. Разделите десятичное значение на 16, запишите остаток и продолжайте с частным, пока оно не станет нулём. Остатки от 10 до 15 становятся буквенными цифрами A-F. Чтение остатков с конца к началу даёт hex-строку, которую Шестнадцатеричный калькулятор также печатает для проверки.

      Для десятичного 47:

      ШагЧастноеОстаток
      47 ÷ 16215 (F)
      2 ÷ 1602

      Чтение снизу вверх даёт 2F. Большие целые следуют тому же циклу; растёт только число шагов. Цикл десятичное → hex → обратно через калькулятор это быстрая проверка здравого смысла перед вставкой значения в отладчик или поле CSS-цвета.

      Сложение 8AB и B78 в hex

      Concept diagram: Входы leads to Сложение 8AB и B78 в hex leads to РезультатВходыСложение 8AB и B78 вhexРезультат
      Сложение 8AB и B78 в hex.

      Сложение 8AB и B78 это рабочий пример hex-сложения по столбцам с переносами через буквенные цифры. В десятичной системе 0x8AB равно 2219, а 0xB78 равно 2936. Их сумма 5155, что записывается как 1423 в hex. Каждый столбец, достигший 16 или больше, записывает перенос 1 в следующий старший разряд, как десятичный перенос при десяти.

      1 1          переносы (десятичные)
              8 A B        2219
            + B 7 8        2936
            -------
              1 4 2 3      5155

      Крайний правый столбец: B + 8 = 11 + 8 = 19 десятичных = 13 hex, пишем 3, перенос 1. Средний столбец: A + 7 + перенос 1 = 10 + 7 + 1 = 18 десятичных = 12 hex, пишем 2, перенос 1. Левый столбец: 8 + B + перенос 1 = 8 + 11 + 1 = 20 десятичных = 14 hex. Пишем 4, оставшийся перенос записывает ведущую 1.

      Результат 1423 соответствует 1×4096 + 4×256 + 2×16 + 3 = 5155. Шестнадцатеричный калькулятор показывает этот вид переносов для каждого сложения, чтобы ручная проверка и инструмент совпали.

      Вычитание с заёмом в hex

      Concept diagram: Входы leads to Вычитание с заёмом в hex leads to РезультатВходыВычитание с заёмом вhexРезультат
      Вычитание с заёмом в hex.

      Hex-вычитание занимает 16 десятичных, одну полную шестнадцатку, когда цифра меньше цифры под ней. Дающий разряд на ступень выше уменьшается на 1, а текущая цифра получает 16 перед вычитанием. Пример 5DC минус 3AF демонстрирует чистый положительный результат 22D с одним применением правила заёма в младшем столбце.

      5 D C      1500 десятичных
      - 3 A F       943 десятичных
      -------
        2 2 D       557 десятичных

      Справа: C (12) минус F (15) невозможно, занимаем у D. Младшая цифра становится 12 + 16 = 28, D падает до C. Затем 28 − 15 = 13, это D. Середина: C (после займа) минус A это 12 − 10 = 2. Слева: 5 − 3 = 2.

      Разность 22D. Когда вычитаемое больше и задана ширина в битах, калькулятор может сообщить результат в стиле дополнительного кода с обёрткой для фиксированных регистров; неограниченный режим сохраняет знаковую величину без выдуманного размера регистра.

      Прямое преобразование между hex и двоичной системой

      Scale bar: 1 Входная единица equals 1.92 Выходная единица1 Входная единица1.92 Выходная единица
      Прямое преобразование между hex и двоичной системой.

      Каждая hex-цифра соответствует ровно четырём битам, одному нибблу, без остатка. Это фиксированное соответствие делает hex-дампы компактными, а RGB-пару вроде FF восемью единицами в двоичном виде. Развёртывание или сжатие между двумя основаниями требует только таблицы нибблов, и Шестнадцатеричный калькулятор выполняет оба направления для любой допустимой строки.

      HexДвоичноеДесятичное
      000000
      100011
      701117
      810008
      A101010
      F111115

      2F становится 0010 1111. FF становится 1111 1111. Развёртывание байта как двух hex-цифр или сжатие восьми бит в две hex-цифры не требует арифметики сверх таблицы. Шестнадцатеричный калькулятор выполняет это отображение в обе стороны; обучение разрядам и побитовым операциям живёт на странице Двоичного калькулятора, чтобы два инструмента не повторяли друг друга.

      Чтение hex-кодов цветов

      Concept diagram: Входы leads to hex-коды цветов leads to РезультатВходыhex-коды цветовРезультат
      Чтение hex-кодов цветов.

      CSS и дизайнерские инструменты записывают цвета как #RRGGBB, где каждая пара это 8-битный канал от 00 (0) до FF (255). #FF5733 означает красный 255, зелёный 87, синий 51. Необязательный альфа-канал добавляет четвёртую пару (#RRGGBBAA) для непрозрачности, всё ещё в шкале 00-FF.

      КодКрасныйЗелёныйСиний
      #000000000
      #FFFFFF255255255
      #FF000025500
      #00FF0002550
      #0000FF00255
      #FF57332558751

      Смешивание каналов это обычная hex-арифметика для каждой пары независимо. Осветление канала значит сложение к FF; затемнение значит вычитание к 00. Калькулятор принимает голый hex или строки с префиксом # при переводе каналов в десятичные для сравнения со спецификацией палитры.

      Чтение адресов памяти и байтовых значений

      Concept diagram: Входы leads to адреса памяти и байтовые значения leads to РезультатВходыадреса памяти ибайтовые значенияРезультат
      Чтение адресов памяти и байтовых значений.

      Отладчики и среды выполнения печатают указатели и машинные значения в hex с префиксом 0x: 0x7FFE короче десятичного эквивалента и выравнивается по границам байтов. Дамп памяти обычно сетка байтов по две hex-цифры каждый. Слова (16 бит), двойные слова (32 бита) и четверные слова (64 бита) это группы этих байтов.

      Порядок байтов (endianness) определяет порядок байтов внутри многобайтового слова. Little-endian хранит младший байт по младшему адресу; big-endian хранит старший байт первым. Чтение 0x1234 из памяти как байты 34 12 это little-endian. Путаница порядка даёт адреса и целые, которые выглядят правдоподобно, пока не сравнишь с видом регистра. Шестнадцатеричный калькулятор переводит числовое значение; интерпретация дампа всё ещё требует знания endianness цели.

      Таблица умножения в шестнадцатеричной системе

      Concept diagram: Входы leads to таблица умножения в hex leads to РезультатВходытаблица умножения в hexРезультат
      Таблица умножения в шестнадцатеричной системе.

      Произведения однозначных hex-цифр достаточно малы, чтобы запомнить для ручной арифметики и длинного умножения. Строки и столбцы от 1 до F, каждая ячейка содержит произведение в hex. Поиск A × B или F × F убирает необходимость переводить в десятичную систему посреди шага при ручном умножении многозначных hex-значений.

      ×123456789ABCDEF
      22468ACE10121416181A1C1E
      448C1014181C2024282C3034383C
      881018202830384048505860687078
      AA141E28323C46505A646E78828C96
      FF1E2D3C4B5A69788796A5B4C3D2E1

      F × F = E1, потому что 15 × 15 = 225, а 225 = 14×16 + 1. Длинное умножение многозначных hex-чисел строится из этих одноразрядных произведений плюс hex-сложение сдвинутых частичных сумм. Калькулятор выполняет эту работу автоматически и всё ещё показывает десятичную проверку.

      Часто задаваемые вопросы

      Какие цифры использует шестнадцатеричная система?

      Шестнадцатеричная система использует 0-9 и A-F. A означает 10, B 11, C 12, D 13, E 14 и F 15. Каждая цифра это один разряд в base 16, поэтому 10 в hex это шестнадцать в десятичной, а не десять.

      Как перевести hex в десятичное?

      Умножьте каждую цифру на её степень 16 и сложите. Крайняя правая цифра стоит 1, следующая 16, затем 256, затем 4096. Буквенные цифры сначала переводят в 10-15. 2F это 2×16 + 15 = 47.

      Почему программисты предпочитают hex десятичной для байтов?

      Одна hex-цифра это ровно четыре бита, две hex-цифры ровно один байт. Это выравнивание делает маски, цветовые каналы и дампы памяти читаемыми без перевода каждого бита. Десятичные значения скрывают эти границы.

      Что означает префикс 0x?

      Префикс 0x это соглашение записи, распространённое в C и родственных языках, помечающее следующие цифры как шестнадцатеричные. 0xFF и FF это одно значение для калькулятора; префикс необязателен на входе и доступен на выходе для вставки в код.

      Как hex связан с RGB-кодами цветов?

      Цвет #RRGGBB хранит каждый канал как две hex-цифры от 00 до FF. #FF5733 это красный 255, зелёный 87, синий 51. Альфа, если есть, это четвёртая пара в том же диапазоне.

      Что такое порядок байтов (endianness)?

      Порядок байтов это порядок хранения многобайтового значения в памяти. Little-endian кладёт младший байт по младшему адресу; big-endian кладёт старший байт первым. Одно и то же hex-целое может выглядеть как разные последовательности байтов в зависимости от машины.

      Как вычитать hex-числа с заёмом?

      Когда цифра меньше вычитаемой, занимайте 16 у следующей старшей цифры. Текущая цифра увеличивается на 16 (десятичных), дающий уменьшается на 1. 5DC − 3AF = 22D использует это правило в младшем столбце.

      Можно ли перевести hex в двоичное без десятичной системы?

      Да. Замените каждую hex-цифру её четырёхбитным шаблоном. A становится 1010, F становится 1111 и так далее. Сцепите нибблы для полной двоичной строки. Десятичный промежуток не нужен.

      Сколько десятичных в FF?

      FF в hex это 15×16 + 15 = 255 десятичных. Это наибольшее беззнаковое 8-битное значение и уровень «полностью включено» для одного цветового канала.

      Загружает ли Шестнадцатеричный калькулятор значения?

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

      Итог

      Шестнадцатеричный калькулятор выполняет арифметику в base 16, переводит между hex, десятичной и двоичной системами через степени 16 и четырёхбитную карту нибблов и поддерживает чтение hex-строк для цветовых каналов и памяти. Сложение 8AB и B78 даёт 1423; вычитание 3AF из 5DC даёт 22D.

      RGB-коды, адреса 0x и чтение дампов с учётом endianness описаны здесь; обучение побитовым разрядам остаётся на Двоичном калькуляторе, чтобы страницы не дублировали друг друга.