Перевод из 10 в 16: формула и примеры
Перевод из десятичной системы в шестнадцатеричную (HEX) часто нужен в программировании. Разберём формулу, пошаговый метод деления на 16 и примеры расчёта.
Перевод из десятичной системы в шестнадцатеричную (HEX) часто нужен в программировании. Разберём формулу, пошаговый метод деления на 16 и примеры расчёта.
Калькулятор выше мгновенно выдаст hex-значение, но понимание алгоритма помогает проверить результат и избежать типичных ошибок.
Алгоритм перевода из десятичной системы в шестнадцатеричную
Основа перевода — последовательное деление исходного десятичного числа на 16. На каждом шаге фиксируют целую часть частного и остаток от деления. Остаток — это значение младшего разряда будущего hex-числа. Деление повторяют, пока частное не станет равным нулю. Затем все остатки выписывают в обратном порядке: от последнего к первому. Полученная последовательность и есть результат в шестнадцатеричной системе.
Формально алгоритм записывают так:
d₀ = N mod 16— первый остаток;N ← ⌊N / 16⌋— целая часть от деления становится новым числом;- шаг повторяют, получая
d₁,d₂, …,dₖ, покаN > 0; - итог:
(dₖ … d₁ d₀)₁₆.
Здесь mod — остаток от деления, а ⌊⌋ — взятие целой части.
Таблица hex-символов для остатков
В шестнадцатеричной системе не хватает арабских цифр для значений больше 9, поэтому используют латинские буквы.
| Остаток (dec) | Hex-символ | Пример |
|---|---|---|
| 0–9 | 0–9 | 7 → 7 |
| 10 | A | 10 → A |
| 11 | B | 11 → B |
| 12 | C | 12 → C |
| 13 | D | 13 → D |
| 14 | E | 14 → E |
| 15 | F | 15 → F |
Пример: переводим 7562 из 10 в 16
Возьмём число 7562₁₀ и последовательно разделим его на 16.
| Шаг | Деление | Частное | Остаток (dec) | Hex |
|---|---|---|---|---|
| 1 | 7562 / 16 | 472 | 10 | A |
| 2 | 472 / 16 | 29 | 8 | 8 |
| 3 | 29 / 16 | 1 | 13 | D |
| 4 | 1 / 16 | 0 | 1 | 1 |
Теперь выписываем остатки снизу вверх: 1, D, 8, A. Результат: 1D8A₁₆.
Проверка обратным переводом:
1×4096 + 13×256 + 8×16 + 10 = 4096 + 3328 + 128 + 10 = 7562₁₀.
Ещё пример: число 255 и степени 16
Для числа 255₁₀:
255 / 16 = 15, остаток15 → F;15 / 16 = 0, остаток15 → F.
Итог: FF₁₆. Это максимальное значение одного байта, поэтому FF часто встречается в коде и при работе с цветами.
Степени основания 16 помогают быстро оценивать разряды:
16⁰ = 116¹ = 1616² = 25616³ = 409616⁴ = 65536
Например, 4096₁₀ = 1000₁₆, а 65536₁₀ = 10000₁₆.
Как переводить дробные числа
Целую часть числа переводят обычным делением на 16. Дробную часть умножают на 16: целая часть произведения становится очередным hex-разрядом после точки, а новую дробную часть снова умножают на 16. Расчёт повторяют до нужной точности.
Пример: 0,5₁₀ × 16 = 8,0. Целая часть 8, дробная часть 0, значит 0,5₁₀ = 0,8₁₆. Для более сложных дробей удобно сразу задать точность в конвертере выше.
Где применяется шестнадцатеричная запись
- Цвета в вебе и дизайне. Код
#RRGGBBсостоит из трёх hex-пар:00— минимум,FF— максимум канала. - Адресация и отладка. Адреса памяти и указатели часто записывают как
0x7FFE,0x00400000. - Машинные коды и дампы. Байты удобно читать парами hex-символов.
- Хэши, контрольные суммы, идентификаторы. Hex компактнее двоичного кода и понятнее десятичного при анализе битов.
Частые ошибки при переводе
- Прямой порядок вместо обратного. Остатки нужно выписывать от последнего к первому, а не сверху вниз.
- Запись
10вместоA. Остаток 10 — это hex-символA, а не две цифры1и0. - Незавершённое деление. Алгоритм останавливают только тогда, когда частное стало
0. - Потеря точности у дробей. Нужно заранее решить, сколько hex-знаков после точки оставить, и не округлять без указания точности.
- Путаница в регистре. Символы
A–Fиa–fозначают одно и то же, но в коде и документации обычно используют прописные буквы.
Часто задаваемые вопросы
Чем шестнадцатеричная система отличается от десятичной?
Шестнадцатеричная система имеет основание 16 и использует 16 символов: цифры 0–9 и буквы A–F для значений 10–15. Десятичная система — позиционная с основанием 10 и цифрами 0–9. Из-за большего основания hex-запись получается короче, поэтому её применяют в информатике для компактного представления двоичных данных, адресов памяти и цветов.
Можно ли выполнить перевод через двоичную систему?
Да, число сначала переводят из десятичной в двоичную, а затем разбивают двоичную запись на тетрады — группы по 4 бита. Каждую тетраду заменяют соответствующим hex-символом от 0 до F. Этот способ удобен при ручном пересчёте больших значений, но требует аккуратности: недостающие биты слева дополняют нулями до полной группы.
Как обозначают шестнадцатеричные числа на письме?
В программировании часто используют префикс 0x, например 0x1D8A. В веб-разработке цвет записывают со знаком решётки: #FF0000. В учебной литературе систему указывают нижним индексом — 1D8A₁₆. Иногда встречается суффикс h (1D8Ah), но в математике такой вариант менее распространён. Выбор обозначения зависит от контекста.
Что делать, если при делении получился остаток 10?
Остаток 10 в шестнадцатеричной системе обозначается латинской буквой A: 11 — B, 12 — C, 13 — D, 14 — E, 15 — F. Остатки от 0 до 9 записываются обычными цифрами. В обратном порядке выписывают не числа, а именно hex-символы — цифру или букву. Это правило нужно запомнить, чтобы не перепутать десятичное 10 и шестнадцатеричное A.
Переводятся ли дробные десятичные числа в шестнадцатеричную систему?
Да, целую и дробную части переводят отдельно. Целое число делят на 16, как обычно. Дробную часть умножают на 16: целая часть результата становится первым hex-знаком после запятой, а оставшуюся дробь снова умножают на 16. Процесс повторяют до нужной точности или до нулевой дробной части, а в быту такой расчёт удобнее доверить онлайн-конвертеру.
Почему результат в 16-ричной системе короче десятичного?
Чем больше основание системы, тем меньше разрядов требуется для записи того же значения. Основание 16 позволяет одним символом кодировать 4 бита, а число 4096 в десятичной записи превращается в короткое 1000 в HEX. Поэтому шестнадцатеричный вид экономит место и упрощает чтение двоичных данных, адресов и машинных кодов.