Шестнадцатеричный калькулятор
Калькулятор для программистов и веб-разработчиков с поддержкой 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% темнее.
Разбил цвет на компоненты: R=3A (58₁₀), G=7B (123₁₀), B=D5 (213₁₀)
Умножил каждый компонент на 0,8: R=2E (46₁₀), G=62 (98₁₀), B=AA (170₁₀)
Проверил побитовой операцией: 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 с опорными значениями
| HEX | DEC | BIN | OCT | Где встречается |
|---|---|---|---|---|
| 0 | 0 | 0000 | 0 | NULL, false |
| 1 | 1 | 0001 | 1 | true, флаг |
| 8 | 8 | 1000 | 10 | старший бит ниббла |
| A | 10 | 1010 | 12 | цифра A в HEX |
| F | 15 | 1111 | 17 | максимум одной HEX-цифры |
| 10 | 16 | 10000 | 20 | основание HEX |
| 20 | 32 | 100000 | 40 | пробел в ASCII |
| 41 | 65 | 1000001 | 101 | символ «A» в ASCII |
| 7F | 127 | 1111111 | 177 | максимум 7-битного ASCII |
| 80 | 128 | 10000000 | 200 | старший бит байта |
| FF | 255 | 11111111 | 377 | максимум 1 байт, 8 бит |
| 100 | 256 | 100000000 | 400 | 2^8, начало второго байта |
| 400 | 1024 | 10000000000 | 2000 | 1 КБ = 2^10 |
| FFFF | 65 535 | 16 единиц | 177777 | максимум 2 байт (uint16) |
| 10000 | 65 536 | 17 нулей | 200000 | 2^16, 64 КБ |
| 100000 | 1 048 576 | 21 бит | 4000000 | 1 МБ = 2^20 |
| FFFFFFFF | 4 294 967 295 | 32 единицы | 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. Выбор системы
Выберите систему счисления для ввода: HEX (16), DEC (10), BIN (2) или OCT (8). При переключении число конвертируется автоматически.
Шаг 2. Ввод первого числа
Введите число с клавиатуры калькулятора или физической клавиатуры. В HEX доступны цифры 0–9 и буквы A–F. Максимум 8 HEX-символов (32 бита).
Шаг 3. Выбор операции
Нажмите кнопку операции: арифметика +, −, ×, ÷, %; побитовые AND, OR, XOR, NAND, NOR; сдвиги <<, >>; унарные NOT и ±.
Шаг 4. Ввод второго числа
Введите второй операнд. Для побитовых операций часто используют маски: 0xFF (младший байт), 0xFF00 (второй байт), 0x80000000 (старший бит uint32).
Шаг 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 в десятичную систему вручную?
Как перевести HEX в двоичную систему?
Что такое побитовая операция AND и зачем она нужна?
Чем отличаются логический и арифметический сдвиги?
Как HEX используется в CSS-цветах?
Как записать отрицательное число в HEX (дополнительный код)?
Почему максимум калькулятора — FFFFFFFF (8 знаков)?
Как HEX используется для адресов памяти и регистров?
Как XOR используется для шифрования и обмена значений?
Полезная информация
🔒 Конфиденциальность Все вычисления выполняются в браузере на JavaScript. Введённые числа не передаются на сервер и не сохраняются в базе данных.
💻 Для программистов и DevOps Калькулятор работает с 32-битными беззнаковыми числами (uint32) — стандартом для адресов IPv4, цветов RGBA, регистров x86 и большинства флаговых полей.
⌨️ Горячие клавиши Цифры 0–9 и буквы A–F вводятся с физической клавиатуры. Enter = равно, Esc = сброс, Backspace = удалить последний символ.
Комментарии
Пока нет комментариев
Будьте первым!