Перевод в шестнадцатеричную систему
Как перевести число в шестнадцатеричную систему счисления: деление на 16, перевод из двоичной и восьмеричной, таблица hex-цифр и бесплатные онлайн-конвертеры.
Перевод в шестнадцатеричную систему счисления — одна из самых частых задач в информатике и программировании. Шестнадцатеричная запись используется в кодах цветов, адресах памяти, MAC-адресах, кодировках символов и файлах прошивок. Ниже разобраны все рабочие способы перевода: деление на 16, перевод через двоичную систему и обратное разложение по степеням шестнадцати — с примерами и таблицей для самопроверки.
Что такое шестнадцатеричная система
Шестнадцатеричная система (hex) — позиционная система счисления с основанием 16. Каждый разряд может принимать 16 значений: цифры 0–9 обозначают значения от нуля до девяти, а буквы A–F — значения от десяти до пятнадцати:
| Десятичное значение | Hex-цифра |
|---|---|
| 0–9 | 0–9 |
| 10 | A |
| 11 | B |
| 12 | C |
| 13 | D |
| 14 | E |
| 15 | F |
Регистр букв не важен: ff, FF и Ff — одно и то же число. Чтобы отличать hex-запись от обычной, используют префиксы: 0xFF в языках программирования, #FF в CSS-цветах, FFh в ассемблере. В математических текстах основание пишут нижним индексом: FF₁₆.
Вес каждого разряда — степень шестнадцати. Например, 1A3₁₆ означает 1×16² + 10×16¹ + 3×16⁰.
Перевод из десятичной системы в шестнадцатеричную
Основной метод для целых чисел — последовательное деление на 16 с фиксацией остатков.
Алгоритм:
- Разделите число на 16. Запишите частное и остаток.
- Частное снова разделите на 16 и снова запишите остаток.
- Повторяйте, пока частное не станет равно нулю.
- Выпишите остатки в обратном порядке — от последнего к первому. Остатки 10–15 замените буквами A–F.
Пример: перевести 357₁₀ в hex.
- 357 ÷ 16 = 22, остаток 5
- 22 ÷ 16 = 1, остаток 6
- 1 ÷ 16 = 0, остаток 1
Читаем остатки снизу вверх: 165₁₆. Проверка: 1×256 + 6×16 + 5 = 357. ✓
Пример с буквами: перевести 255₁₀.
- 255 ÷ 16 = 15, остаток 15 (F)
- 15 ÷ 16 = 0, остаток 15 (F)
Результат: FF₁₆. Число 255 — максимум для одного байта, поэтому запись FF встречается повсюду: от кода цвета #FFFFFF до масок подсети.
Перевод дробных чисел
Дробная часть переводится иначе — не делением, а последовательным умножением на 16. Целая часть результата на каждом шаге становится очередной hex-цифрой после запятой.
Пример: перевести 0,375₁₀.
- 0,375 × 16 = 6,0 → цифра 6, дробная часть стала нулём — процесс завершён.
Результат: 0,6₁₆. Проверка: 6/16 = 0,375. ✓
Если дробная часть не обращается в ноль, вычисления продолжают до нужной точности. Некоторые дроби в hex получаются бесконечными периодическими — например, 0,1₁₀ не выражается конечной hex-записью, поэтому в таких случаях результат округляют.
Перевод из шестнадцатеричной системы в десятичную
Обратный перевод проще прямого: каждую цифру умножают на соответствующую степень шестнадцати и складывают.
Формула: цифраₙ×16ⁿ + … + цифра₁×16¹ + цифра₀×16⁰
Пример: перевести 4D2₁₆ в десятичную.
- 2 × 16⁰ = 2
- D (13) × 16¹ = 208
- 4 × 16² = 1024
Сумма: 1024 + 208 + 2 = 1234₁₀.
Степени 16, которые пригодятся чаще всего: 16⁰=1, 16¹=16, 16²=256, 16³=4096, 16⁴=65536.
Прямой перевод между двоичной и шестнадцатеричной системами
Это самый быстрый способ, и он работает без деления, потому что 16 = 2⁴: одна hex-цифра занимает ровно четыре бита (тетраду).
Из двоичной в hex:
- Разбейте двоичное число на группы по 4 бита справа налево.
- Старшую группу при необходимости дополните нулями слева.
- Замените каждую тетраду одной hex-цифрой.
Пример: 10111110₂ → 1011 | 1110 → B и E → BE₁₆.
Из hex в двоичную: замените каждую цифру её четырёхбитным кодом:
| Hex | Двоичная тетрада |
|---|---|
| 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 |
Пример: 3A₇₁₆ → 0011 | 1010 | 0111 → 001110100111₂.
Перевод из восьмеричной системы
Прямой связи между основаниями 8 и 16 нет (8 = 2³, а 16 = 2⁴), поэтому самый простой путь — через двоичную запись:
- Каждую восьмеричную цифру разверните в три бита.
- Полученную двоичную строку разбейте на тетрады и замените их hex-цифрами.
Пример: 745₈ → 111 | 100 | 101 → 111100101₂ → 0001 1110 0101 → 1E5₁₆.
Типичные ошибки при переводе
- Перепутан порядок остатков. Остатки читаются от последнего к первому; запись в прямом порядке даёт неверное число.
- Остаток 10–15 записан цифрой. Остаток 13 — это D, а не «13».
- Потеряны ведущие нули в тетрадах. При переводе из двоичной системы старшая группа дополняется нулями: 1010₂ — это A, но 10₂ — тоже A, а не «2».
- Путаница с основанием. Hex-числа часто заканчиваются парой символов, похожих на обычные числа: B5₁₆ ≠ 85₁₀, потому что B = 11.
- Дробная часть переведена делением. Дроби переводятся умножением на 16, иначе результат будет ошибочным.
Где используется hex-запись
- Цвета в веб-дизайне:
#FF5733— три пары hex-цифр задают интенсивность красного, зелёного и синего каналов. - Программирование: адреса памяти, машинные коды, побитовые маски, отладчики.
- Сети: MAC-адреса устройств вида
00:1A:2B:3C:4D:5E. - Кодировки: коды символов Unicode записываются в hex, например
U+0041— латинская буква A. - Идентификаторы: UUID, серийные номера, контрольные суммы файлов.
Как перевести число онлайн
Если считать вручную не нужно, на нашем портале доступны бесплатные конвертеры: перевод из десятичной системы в шестнадцатеричную, из двоичной и восьмеричной, а также обратный перевод из hex в десятичную. Введите число — результат появится мгновенно, с пошаговым разбором, по которому легко проверить ручные вычисления.
Частые вопросы
Сколько будет 255 в шестнадцатеричной системе?
255 в hex — это FF. Число 255 делится на 16 с частным 15 и остатком 15; оба значения соответствуют цифре F. Это максимальное значение одного байта, поэтому FF так часто встречается в программировании.
Почему в шестнадцатеричной системе используются буквы?
Алфавит системы с основанием 16 должен содержать 16 символов, а привычных цифр только десять (0–9). Для значений 10–15 используются первые шесть латинских букв: A=10, B=11, C=12, D=13, E=14, F=15. Регистр буквы значения не имеет.
Как перевести отрицательное число в шестнадцатеричную систему?
Знак минус просто ставится перед записью модуля числа: −26₁₀ = −1A₁₆. В программировании отрицательные числа обычно записывают в дополнительном коде без знака минус — например, −1 в байте будет FF. Уточняйте, какой формат нужен в вашей задаче.
Что означают префиксы 0x, # и суффикс h перед hex-числами?
Это способы пометить, что запись шестнадцатеричная: 0x1F — стиль языков C, JavaScript, Python; #1F — формат цветов в CSS; 1Fh — традиция ассемблера. Само число во всех случаях одно и то же.
Как быстро перевести двоичное число в hex без калькулятора?
Разбейте двоичную запись на группы по 4 бита справа налево и замените каждую группу одной hex-цифрой: 1010→A, 1011→B, 1100→C, 1101→D, 1110→E, 1111→F. Недостающие биты в старшей группе дополняются нулями слева.
Зачем нужна шестнадцатеричная система, если компьютеры работают в двоичной?
Hex — это компактная «человеческая» запись двоичных данных: одна hex-цифра кодирует ровно 4 бита, а байт занимает всего два символа. Поэтому в hex записывают цвета, MAC-адреса, коды символов Unicode, дампы памяти и контрольные суммы.