Перейти к содержимому
🔢

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

Калькулятор для программистов и веб-разработчиков с поддержкой HEX, цветов CSS и битовых операций

Шестнадцатеричный калькулятор — HEX-арифметика и побитовые операции

Онлайн калькулятор шестнадцатеричной системы счисления для программистов: сложение, вычитание, умножение и деление HEX-чисел, побитовые операции (AND, OR, XOR, NAND, NOR, NOT), битовые сдвиги влево/вправо. Калькулятор работает с 32-битными беззнаковыми числами и одновременно показывает результат в HEX, DEC, BIN и OCT — без отправки данных на сервер.

Главные сценарии: перевод hex в десятичную и обратно, расчёт побитовых масок и флагов, разбор адресов памяти и регистров процессора, конвертация CSS-цветов, отладка сетевых пакетов и работа с дампами в hex-редакторах.

  • Арифметика 32-битных HEX-чисел: +, −, ×, ÷, % (остаток от деления)
  • Побитовые операции: AND, OR, XOR, NAND, NOR, NOT
  • Битовые сдвиги: << (влево), >> (вправо) — с маскированием на 31
  • Конвертация HEX ↔ DEC ↔ BIN ↔ OCT в реальном времени
  • Результат одновременно во всех 4 системах счисления
  • История последних 10 вычислений с быстрой подстановкой
  • Работает офлайн в браузере, не требует регистрации

Где программисты используют шестнадцатеричную систему

Шестнадцатеричная система — основной формат записи бинарных данных в программировании. HEX компактно представляет адреса памяти (0x7FFE0000), цвета в CSS и графике (#FF5733 = rgb(255, 87, 51)), MAC-адреса сетевых карт (AA:BB:CC:DD:EE:FF), байтовые значения в hex-редакторах, IPv6-адреса (2001:0db8::1), UUID (550e8400-e29b-41d4-a716-446655440000) и ключи шифрования AES/SHA.

Каждая HEX-цифра кодирует ровно 4 бита (полубайт, ниббл), что делает перевод в двоичную систему элементарным: F = 1111, A = 1010, 7 = 0111. Два HEX-знака = один байт (00–FF = 0–255). Восемь HEX-знаков = слово (32 бита) — стандартная ширина регистров x86 и большинства встраиваемых систем.

    Побитовые операции: маски, флаги и оптимизации

    AND применяется для маскирования битов и проверки флагов: 0xABCD AND 0x00FF = 0x00CD извлекает младший байт. OR устанавливает биты: flag |= 0x04 включает третий бит. XOR переключает биты, используется для простого шифрования и обмена значений без временной переменной. NOT инвертирует все биты, превращая 0x00000000 в 0xFFFFFFFF.

    Сдвиги << и >> работают быстрее умножения и деления на степени двойки: x << 3 эквивалентно x × 8, x >> 4 — деление на 16. В калькуляторе реализован логический сдвиг вправо (>>>), который заполняет старшие биты нулями — стандартное поведение для беззнаковых типов uint32 в C, Rust, Go.

      HEX в популярных языках программирования

      C, C++, Java, JavaScript, Go: префикс 0x — int addr = 0xDEADBEEF; uint32_t mask = 0xFF00FF00. Python: 0xFF (литерал) или hex(255) → 0xff, int(FF, 16) для парсинга. JavaScript: Number(0xFF), (255).toString(16), parseInt(FF, 16). Rust: 0xFFu32, форматирование через {:X}. Ассемблер: суффикс h (0FFh) или префикс $ (Motorola) и 0x (AT&T).

      SQL: x'FF' или 0xFF в MySQL и SQL Server. CSS: #RRGGBB, #RGBA, hsl() и rgb(). Регулярные выражения: \xFF, \u00FF — для байтовых и unicode-кодов. URL-encoding: %20 = пробел, %2F = слэш. JSON: \u0041 = «A». Везде шестнадцатеричное представление выбрано из-за компактности и прямого соответствия 4 битам на символ.

        Разрядность: 8, 16, 32 и 64 бита

        Калькулятор оперирует 32-битными беззнаковыми числами (uint32) — диапазон 0…0xFFFFFFFF (0…4 294 967 295). Это покрывает большинство задач: IPv4-адреса, цвета RGBA, регистры x86, флаги PCI и USB. Для 8-битных значений используйте маску 0xFF, для 16-битных — 0xFFFF, для проверки знаковых 32-битных — старший бит 0x80000000.

        Для 64-битных адресов (современные процессоры x86-64, ARM64) разделите число на два слова по 32 бита и считайте по частям, либо используйте арифметику с переносом. Большинство программных задач 64-битного диапазона сводятся к 32-битным операциям над верхним и нижним словом.

          💡

          Пример из жизни

          Веб-разработчик получил макет с цветом кнопки #3A7BD5. Нужно создать более тёмный вариант для состояния hover — на 20% темнее.

          1

          Разбил цвет на компоненты: R=3A (58₁₀), G=7B (123₁₀), B=D5 (213₁₀)

          2

          Умножил каждый компонент на 0,8: R=2E (46₁₀), G=62 (98₁₀), B=AA (170₁₀)

          3

          Проверил побитовой операцией: 3A AND 0x80 = 0 (старший бит не установлен — значение < 128)

          Получил hover-цвет #2E62AA — корректно затемнённый на 20%. Без калькулятора пришлось бы переводить каждый компонент вручную.

          🧠

          Знаете ли вы?

          🎨

          Цвет #FFFFFF (белый) — это 16 777 215 в десятичной системе и 111111111111111111111111 в двоичной (24 единицы)

          💻

          Адресное пространство 64-битного процессора: от 0x0000000000000000 до 0xFFFFFFFFFFFFFFFF — 16 экзабайт

          🔢

          В HEX-системе всего 16 цифр (0–F), но двузначным числом (FF) можно записать 256 значений — один байт

          📡

          MAC-адрес сетевой карты — 6 байт в HEX: AA:BB:CC:DD:EE:FF = 281 474 976 710 655 комбинаций

          🔐

          SHA-256 хеш записывается 64 HEX-символами — каждый символ кодирует 4 бита, итого 256 бит

          📐

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

          Таблица соответствия HEX, DEC, BIN и OCT с опорными значениями

          HEXDECBINOCTГде встречается
          0000000NULL, false
          1100011true, флаг
          88100010старший бит ниббла
          A10101012цифра A в HEX
          F15111117максимум одной HEX-цифры
          10161000020основание HEX
          203210000040пробел в ASCII
          41651000001101символ «A» в ASCII
          7F1271111111177максимум 7-битного ASCII
          8012810000000200старший бит байта
          FF25511111111377максимум 1 байт, 8 бит
          1002561000000004002^8, начало второго байта
          40010241000000000020001 КБ = 2^10
          FFFF65 53516 единиц177777максимум 2 байт (uint16)
          1000065 53617 нулей2000002^16, 64 КБ
          1000001 048 57621 бит40000001 МБ = 2^20
          FFFFFFFF4 294 967 29532 единицы37777777777максимум 4 байт (uint32)
          💡

          Важно знать

          Быстрый перевод HEX в BIN: замените каждый HEX-символ на 4 бита (A=1010, F=1111). Обратно: разбейте двоичное число на группы по 4 справа налево. Для перевода HEX в DEC умножайте каждую цифру на 16 в степени её позиции справа и складывайте: 0x3A = 3×16 + 10×1 = 58. Помните опорные точки: 0x100 = 256, 0x400 = 1024 (1 КБ), 0x1000 = 4096 (4 КБ), 0xFFFF = 65 535 (uint16 max), 0xFFFFFFFF = 4 294 967 295 (uint32 max).

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

          1

          Шаг 1. Выбор системы

          Выберите систему счисления для ввода: HEX (16), DEC (10), BIN (2) или OCT (8). При переключении число конвертируется автоматически.

          2

          Шаг 2. Ввод первого числа

          Введите число с клавиатуры калькулятора или физической клавиатуры. В HEX доступны цифры 0–9 и буквы A–F. Максимум 8 HEX-символов (32 бита).

          3

          Шаг 3. Выбор операции

          Нажмите кнопку операции: арифметика +, −, ×, ÷, %; побитовые AND, OR, XOR, NAND, NOR; сдвиги <<, >>; унарные NOT и ±.

          4

          Шаг 4. Ввод второго числа

          Введите второй операнд. Для побитовых операций часто используют маски: 0xFF (младший байт), 0xFF00 (второй байт), 0x80000000 (старший бит uint32).

          5

          Шаг 5. Получение результата

          Нажмите «=». Результат отобразится одновременно в HEX, DEC, BIN и OCT. Кнопка «Копировать все» скопирует значение во всех 4 системах в буфер обмена.

          Примеры использования

          Сложение цветов: FF + 0A

          0xFF + 0x0A = 0x109 (265₁₀). При работе с CSS-цветами значения > FF ограничиваются до FF

          Маскирование: 0xABCD AND 0x00FF

          Результат: 0x00CD — извлечён младший байт. AND с маской 0xFF — стандартный приём для выделения байтов

          XOR-шифрование: 0x48 XOR 0x1F

          0x48 XOR 0x1F = 0x57. Повторное XOR с тем же ключом: 0x57 XOR 0x1F = 0x48 — данные восстановлены

          Сдвиг влево: 0x01 << 4

          0x01 << 4 = 0x10 (16₁₀). Сдвиг на 4 позиции = умножение на 16 (одна HEX-позиция)

          Вычисление размера: 0x400 × 0x400

          1024 × 1024 = 0x100000 (1 048 576₁₀ = 1 МБ). Удобно для расчёта размеров памяти

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

          Зачем программистам шестнадцатеричная система счисления?
          HEX компактно представляет двоичные данные: один символ кодирует 4 бита, два — байт. Адрес 0xFFFF понятнее, чем 1111111111111111 (BIN) или 65535 (DEC). Все дампы памяти, сетевые пакеты, файлы и регистры процессора отображаются в hex-редакторах в шестнадцатеричном виде, поэтому программисты, реверс-инженеры и embedded-разработчики работают именно с HEX.
          Как перевести HEX в десятичную систему вручную?
          Каждая позиция в HEX-числе соответствует степени 16: справа налево — 16⁰=1, 16¹=16, 16²=256, 16³=4096, 16⁴=65 536. Умножьте цифру на её разряд и сложите: 0x3A = 3×16 + 10 = 58. 0x100 = 1×256 = 256. 0x1F4 = 1×256 + 15×16 + 4 = 500. Опорные точки: 0x10=16, 0x40=64, 0x80=128, 0xFF=255, 0x100=256, 0x400=1024, 0x1000=4096.
          Как перевести HEX в двоичную систему?
          Самый быстрый способ — заменить каждую HEX-цифру на 4 бита по таблице: 0=0000, 1=0001, 2=0010, 3=0011, 4=0100, 5=0101, 6=0110, 7=0111, 8=1000, 9=1001, A=1010, B=1011, C=1100, D=1101, E=1110, F=1111. Например, 0xA3F → 1010 0011 1111. Обратно: разбейте двоичное число на группы по 4 бита справа налево и замените группы на HEX-цифры.
          Что такое побитовая операция AND и зачем она нужна?
          AND сравнивает биты двух чисел попарно: если оба бита = 1, результат = 1, иначе = 0. Используется для маскирования (извлечение определённых битов): 0xAB AND 0x0F = 0x0B — выделили младший полубайт. Проверка флага: if (flags AND 0x04) — установлен ли третий бит. Сброс битов: x AND 0xFFFFFFFE сбрасывает младший бит. AND с 0 всегда даёт 0, AND с 1 не меняет бит.
          Чем отличаются логический и арифметический сдвиги?
          Логический сдвиг вправо (>>>) заполняет старшие биты нулями: 0xFFFFFFFE >>> 1 = 0x7FFFFFFF. Арифметический (>>) сохраняет знаковый бит для отрицательных чисел: −2 >> 1 = −1. Калькулятор выполняет логический сдвиг (как для uint32 в C, Rust, Go) — это поведение «беззнакового» сдвига. Сдвиг влево (<<) у обоих типов одинаков и эквивалентен умножению на 2ⁿ.
          Как HEX используется в CSS-цветах?
          CSS использует формат #RRGGBB: каждая пара символов кодирует один канал в диапазоне 00–FF (0–255). #FF0000 = красный, #00FF00 = зелёный, #0000FF = синий, #FFFFFF = белый, #000000 = чёрный. Сокращённая запись #RGB расширяется удвоением: #F00 = #FF0000. Альфа-канал записывается как #RRGGBBAA: #FF000080 = красный с 50% прозрачностью (0x80 = 128 из 255).
          Как записать отрицательное число в HEX (дополнительный код)?
          В дополнительном коде для 32-битных чисел: −1 = 0xFFFFFFFF, −2 = 0xFFFFFFFE, −128 = 0xFFFFFF80, −2 147 483 648 = 0x80000000 (минимальное знаковое). Признак отрицательного числа — старший бит = 1 (значение ≥ 0x80000000). Чтобы получить дополнительный код вручную: инвертируйте все биты числа и прибавьте 1. Для 0x05 это будет 0xFA + 1 = 0xFB = −5 (для int8) или 0xFFFFFFFB (для int32).
          Почему максимум калькулятора — FFFFFFFF (8 знаков)?
          Калькулятор использует 32-битные беззнаковые целые (uint32) — стандартный тип для большинства задач программиста: IPv4-адресов, цветов с альфа-каналом, регистров x86, флаговых полей. Это диапазон 0…4 294 967 295. Все побитовые операции в JavaScript, C, Java выполняются именно над 32 битами, поэтому ограничение совпадает с реальной разрядностью операций.
          Как HEX используется для адресов памяти и регистров?
          Виртуальные адреса процессов в 32-битных Windows: 0x00400000–0x7FFFFFFF (пользовательская память), 0x80000000–0xFFFFFFFF (ядро). Регистры процессора x86: EAX, EBX, ECX, EDX — 32 бита, отображаются в отладчиках в HEX. Адреса I/O-портов: 0x60 — клавиатура, 0x3F8 — COM1. Vendor ID PCI-устройств: 0x8086 (Intel), 0x10DE (NVIDIA), 0x1022 (AMD).
          Как XOR используется для шифрования и обмена значений?
          XOR — операция обратная самой себе: (A XOR K) XOR K = A. Это база простого потокового шифра: ciphertext = plaintext XOR key, decrypt = ciphertext XOR key. Обмен значений двух переменных без временной: a ^= b; b ^= a; a ^= b. Проверка изменения бита: if ((old XOR new) AND mask) — определит, какой бит флага изменился. XOR с одинаковыми значениями даёт 0, что используют для сравнения.

          Полезная информация

          🔒 Конфиденциальность Все вычисления выполняются в браузере на JavaScript. Введённые числа не передаются на сервер и не сохраняются в базе данных.

          💻 Для программистов и DevOps Калькулятор работает с 32-битными беззнаковыми числами (uint32) — стандартом для адресов IPv4, цветов RGBA, регистров x86 и большинства флаговых полей.

          ⌨️ Горячие клавиши Цифры 0–9 и буквы A–F вводятся с физической клавиатуры. Enter = равно, Esc = сброс, Backspace = удалить последний символ.

          Комментарии

          Был ли полезен этот инструмент?

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

          Будьте первым!

          Руслан Авдеев (автор проекта)Закреплено
          🎉 Спасибо, что используете наши инструменты! Все инструменты на ToolFox полностью бесплатны и постоянно улучшаются. 📝 Пожалуйста, оставляйте комментарии: - Если инструмент работает некорректно - Если есть идеи по улучшению - Поделитесь своим опытом использования 👍 Ставьте лайки/дизлайки - это помогает мне понять, какие инструменты нуждаются в доработке. Я обновляю сайт каждую неделю на основе вашей обратной связи. ⭐ Если вам нравится ToolFox — буду благодарен за отзыв о сайте в Яндекс.Браузере (нажмите на ⋮ → «Оценить сайт» в панели браузера). Это помогает другим людям находить наши инструменты! 😊 Также вы можете написать мне напрямую в Telegram: @avdeevrus Все доработки и улучшения по вашим пожеланиям делаю бесплатно! Благодарю за доверие и использование ToolFox! 🚀