Конвертер десятичных чисел в шестнадцатеричные

→
Шестнадцатеричное = последовательное деление на 16 с записью остатков как 0-9 или A-F

Из десятичной в шестнадцатеричную: стенография, которой пользуются программисты

Что делает эта конвертация

Инструмент записывает число из основания 10 в основании 16, используя шестнадцать знаков от 0 до 9 и от A до F. Шестнадцатеричная — не другой вид числа, а более короткая запись тех же битов: одна её цифра покрывает ровно четыре двоичных разряда, поэтому 32-битное значение занимает восемь знаков вместо тридцати двух. Ради этого сжатия нотация и держится.

Откуда взялись буквы от A до F

Основанию 16 нужно шестнадцать разных знаков, а общеупотребительных всего десять, поэтому пробел закрывают первые шесть букв алфавита: A — это десять, B — одиннадцать и так до F, то есть пятнадцати. Буквы здесь именно цифры, а не сокращения: FF означает пятнадцать шестнадцатеричных единиц плюс пятнадцать, то есть 255, и никак не связано со словом «пятнадцать».

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

Десятичные значения, которые постоянно встречаются в работе с цветом, адресами и масками прав, и их шестнадцатеричные записи. Числа вроде 255 и 65535 отмечают границы однобайтовых и двухбайтовых полей.

ДесятичнаяШестнадцатеричная
00
11
77
88
10A
15F
1610
311F
6440
10064
1277F
200C8
255FF
10003E8

Коды цветов и адреса памяти

Веб-цвет вида #1E90FF — это три байта, красный, зелёный и синий, записанные шестью шестнадцатеричными цифрами, где каждая пара — один канал от 0 до 255. Та же нотация встречается в адресах памяти, где 0x7FFE сравнивать глазами заметно проще, чем его десятичную форму. В обоих случаях выигрывает шестнадцатеричная, потому что её цифры совпадают с границами байтов: две цифры — один байт, всегда.

Следите за регистром букв

Конвертер печатает заглавными, как принято в листингах на C, документации и даташитах. Строчные ничуть не хуже и встречаются в URL и в литералах некоторых языков, а поле ввода принимает любой регистр. Смешивать оба варианта в одном значении формально можно, но читается это плохо, поэтому выберите один и держитесь его.

Частые вопросы

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

Делите на 16, записывайте остаток как шестнадцатеричную цифру и повторяйте с частным, пока оно не обратится в ноль, затем прочитайте цифры от последней к первой. Для 255: 255 ÷ 16 — это 15 и остаток 15, а 15 ÷ 16 — это 0 и остаток 15, значит ответ FF. Остатки больше девяти записываются буквами от A до F.

Почему используют шестнадцатеричную, а не двоичную?

Потому что четыре двоичных разряда отображаются ровно в одну шестнадцатеричную цифру, и перевод становится простой подстановкой без арифметики. Шестнадцатеричная — компактная и удобная для человека запись тех же битов, поэтому её и выбирают отладчики, дизассемблеры и сетевые утилиты.

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

Это пометка, принятая в C и многих других языках, которая говорит: дальше идут шестнадцатеричные цифры, поэтому 0x20 — это тридцать два, а не двадцать. Конвертер принимает префикс 0x на входе и не добавляет его к результату, ведь на этой странице основание и так понятно.

Сколько шестнадцатеричных цифр нужно для 64-битного значения?

Шестнадцать, и конвертер обрабатывает их точно. 64-битное число выходит за пределы того, что представляет плавающая точка, поэтому инструмент на обычных числах выдал бы правдоподобный, но неверный ответ для чего-нибудь вроде FFFFFFFFFFFFFFFF. Точная целочисленная арифметика это исключает.

Регистр шестнадцатеричных цифр имеет значение?

Нет. FF и ff — одно и то же значение, и поле ввода принимает оба варианта. Вывод по соглашению заглавный, как в большинстве исходников, документации и технических руководств.

Скопируйте приведённый ниже код и вставьте его на свой сайт, чтобы добавить этот конвертер.

<!-- Десятичная в шестнадцатеричную -->
<iframe src="https://unitflow.net/ru/embed/decimal-to-hex" title="Десятичная в шестнадцатеричную" width="100%" height="420" loading="lazy" style="border:0;max-width:100%;display:block"></iframe>
<p><a href="https://unitflow.net/ru/decimal-to-hex" target="_blank" rel="noopener">Работает на UnitFlow</a></p>