Перейти к содержанию
Избранное

Конвертер шестнадцатеричного кода

Обновлено:

Преобразуйте текст в шестнадцатеричные значения или превращайте разделённые пробелами hex-коды обратно в текст. Введите содержимое и выберите «В HEX» или «В текст».

Конвертер текста в шестнадцатеричный код

Поля ввода
Если включено, результат будет автоматически обновляться при изменении любого значения.

Формула конвертера HEX

Формула
\[h_i=\operatorname{pad}_{2}\!\left(\operatorname{base}_{16}(u_i)\right),\qquad u_i=\operatorname{parse}_{16}(h_i)\]

Где:

  • \(u_i\) — кодовая единица UTF-16 входного текста.
  • \(h_i\) — её шестнадцатеричное представление в нижнем регистре, дополненное как минимум до двух цифр.

Режим «В HEX» преобразует каждую кодовую единицу UTF-16 по отдельности и объединяет значения пробелами. Режим «В текст» разбирает каждое шестнадцатеричное значение, отделённое пробельным символом, и преобразует его в кодовую единицу UTF-16.

Конвертер HEX – пример вычисления

Пример: введите Hi в поле «Содержимое» и выберите «В HEX».

\[\texttt{H}\rightarrow 72_{10}=48_{16},\qquad \texttt{i}\rightarrow 105_{10}=69_{16}\]

Результат: 48 69. Чтобы выполнить обратное преобразование, введите 48 69 и выберите «В текст»; результат — Hi.

Как пользоваться конвертером HEX

  1. Введите текст или шестнадцатеричные значения в поле «Содержимое». Поле принимает несколько строк, однако пробелы в начале и в конце удаляются перед преобразованием.
  2. Выберите «В HEX» в меню «Тип», чтобы преобразовать текст в hex-значения. Этот вариант выбран по умолчанию.
  3. Выберите «В текст», чтобы декодировать hex-значения. Разделяйте значения пробелами, знаками табуляции или переносами строк; например, введите 48 69, а не 4869, чтобы получить Hi.
  4. Прочитайте или скопируйте преобразованное значение под «Результатом». Если после удаления пробелов по краям поле «Содержимое» пусто, калькулятор попросит вас ввести содержимое.

Что представляет собой преобразование в hex?

Шестнадцатеричная система, то есть система с основанием 16, записывает числа с помощью цифр 0–9 и букв a–f. Каждая hex-цифра представляет четыре бита, поэтому hex — компактный способ отображения числовых значений. Этот калькулятор превращает текст в читаемую последовательность таких значений и может превратить последовательность обратно в текст. Пробелы в результате режима «В HEX» разделяют значения; они не являются частью исходного текста, если только внутренний пробел сам не был преобразован.

Для базовых латинских букв, цифр и знаков препинания результат выглядит как привычный ASCII-код в hex: A превращается в 41, а внутренний пробел — в 20. Благодаря этому результат полезен при изучении значений символов или проверке короткой текстовой последовательности. Если вам нужны десятичные номера символов, воспользуйтесь конвертером ASCII; для последовательностей в двоичной системе смотрите конвертер двоичного кода.

Преобразование выполняется над кодовыми единицами UTF-16, которые используются в JavaScript, а не над байтами UTF-8. Символ вне базовой многоязыковой плоскости, например многие эмодзи, представляется двумя кодовыми единицами и поэтому даёт два разделённых пробелом hex-значения. Результат не следует рассматривать как hex-дамп UTF-8 или как исходные байты файла. Если вам нужно представить данные для передачи, а не изучать значения символов, кодировщик Base64 использует другой метод кодирования.

Правила ввода и практические ограничения

В режиме «В HEX» каждая кодовая единица даёт hex-значение в нижнем регистре с минимальной шириной в две цифры. Значения больше ff могут, соответственно, состоять из трёх или четырёх цифр. В результате значения разделяются одинарными пробелами; конвертер не добавляет префикс 0x. Если вы планируете декодировать результат режимом «В текст», копируйте его целиком, включая разделители.

В режиме «В текст» пробельные символы разделяют значения, а не пары цифр. Например, 48 69 читается как два значения, тогда как 4869 читается как одно шестнадцатеричное число и даёт другой символ. Вводите шестнадцатеричные значения, а не непрерывный поток байтов, и при неожиданном результате проверяйте, нет ли пропущенных разделителей или недопустимых значений.

Калькулятор удаляет начальные и конечные пробельные символы из поля «Содержимое» перед любым из преобразований. В результате он не может сохранить пробелы или переносы строк в самом начале или в самом конце вводимого текста. Пробелы внутри текста сохраняются в режиме «В HEX» и преобразуются в собственные hex-значения. Эти детали важны, когда вы сравниваете результат с точной исходной строкой: сначала проверьте короткий образец, затем убедитесь, что обратное преобразование даёт ожидаемый текст.

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

Как вручную преобразовать символ в hex?

Найдите числовое значение символа, затем разделите его на 16. Остаток — последняя hex-цифра; повторяйте деление с частным, пока оно не станет нулём, затем прочитайте остатки в обратном порядке. Например, символ B имеет значение 66: деление на 16 даёт 4 и остаток 2, поэтому его hex-значение — 42. Это напрямую работает для базовых латинских символов.

Почему результат отличается от конвертера UTF-8 в hex?

Эти два инструмента представляют разные вещи. Данный конвертер показывает кодовые единицы UTF-16, а конвертер UTF-8 в hex — кодированные байты. Например, é здесь отображается как e9, но его байты в UTF-8 — c3 a9. Ни один из результатов не является ошибочным; выбирайте байтовый конвертер, когда нужно изучить файл, сетевое сообщение или кодировку UTF-8.

Почему один эмодзи даёт два hex-значения?

У многих эмодзи кодовые точки Unicode выходят за пределы диапазона одной кодовой единицы UTF-16. UTF-16 представляет каждый такой символ парой, называемой суррогатами. Например, 😀 даёт d83d de00. При декодировании сохраняйте оба значения по порядку; каждое значение по отдельности не представляет эмодзи и может отобразиться как символ замены.

Можно ли использовать заглавные hex-буквы или префикс 0x при декодировании?

Заглавные буквы работают: 4A и 4a декодируются в одно и то же значение. Префикс 0x, как в 0x4a, также принимается базовым шестнадцатеричным парсером, хотя конвертер не добавляет префиксы к собственным результатам. Каждое значение символа вводите как отдельный элемент, отделённый пробельными символами. Не используйте запятые в качестве разделителей.

Что произойдёт, если hex-значение недопустимо или слишком велико?

Декодер не выполняет строгую проверку каждого элемента. Значение вроде 41xyz может всё равно декодироваться как A, потому что разбор прекращается на первом символе, не являющемся hex-цифрой. Элемент без допустимых hex-цифр может превратиться в невидимый нулевой символ, а значение выше ffff урезается до кодовой единицы UTF-16. Внимательно проверяйте ввод, если важен точный результат.

Является ли преобразование текста в hex способом его шифрования?

Нет. Hex — это читаемое представление числовых значений, а не шифрование. Любой может преобразовать значения обратно без ключа, поэтому hex не защищает пароли, личные сообщения и другие конфиденциальные данные. Если вам нужна конфиденциальность, используйте проверенный метод шифрования; если же нужно лишь изучить значения символов, hex вполне подходит.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *