Перевод чисел в шестнадцатеричные строки в Python

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Python предоставляет функцию hex() для преобразования целого числа в шестнадцатеричную строку:

Python
Скопировать код
hex_value = hex(255)
print(hex_value)  # результат: "0xff"

Если же вам требуется получить чистую шестнадцатеричную строку без префикса '0x':

Python
Скопировать код
hex_str = format(255, 'x')
print(hex_str)  # результат: "ff"

Для вывода шестнадцатеричных символов в верхнем регистре используйте:

Python
Скопировать код
hex_upper = format(255, 'X')
print(hex_upper)  # результат: "FF"

А для добавления ведущих нулей можно применить спецификаторы формата:

Python
Скопировать код
hex_padded = format(255, '04x')
print(hex_padded)  # результат: "00ff"

Преобразование в шестнадцатеричную строку с применением форматирования строк

Python предлагает несколько вариантов форматирования строк. Рассмотрим их подробнее.

Форматирование с использованием %:

Python
Скопировать код
hex_format = "%0.2X" % 255
print(hex_format)  # результат: "FF"

Использование метода .format() и f-строк:

При помощи шестнадцатеричных строк в нижнем регистре:

Python
Скопировать код
hex_formatted = "{:02x}".format(255)
print(hex_formatted)  # результат: "ff"

При использовании шестнадцатеричных строк в верхнем регистре с f-строками:

Python
Скопировать код
hex_fstring = f"{255:02X}"
print(hex_fstring)  # результат: "FF"

Контроль ширины и заполнения

Заданный размер и заполнение нулями гарантируют корректное и понятное отображение шестнадцатеричных строк.

Заполнение нолями:

Python
Скопировать код
# С использованием метода format()
padded_hex = format(255, '0>4X')
print(padded_hex)  # результат: "00FF"

# Используя f-строку
padded_fstring = f"{255:04x}"
print(padded_fstring)  # результат: "00ff"

Установка минимальной ширины:

Python
Скопировать код
# Заполнение нулями до заданной ширины без префикса '0x'
min_width = "{:0>4x}".format(255)
print(min_width)  # результат: "00ff"

# Теперь с префиксом '0x'
min_width_prefix = "0x{:0>4x}".format(255)
print(min_width_prefix)  # результат: "0x00ff"

Визуализация

Преобразование целого числа в шестнадцатеричное представление в Python можно визуализировать вот так:

Python
Скопировать код
int_number = 255

Затем применяем функцию hex():

Python
Скопировать код
hex_string = hex(int_number)

Этот процесс аналогичен определению кода цвета в цифровом изображении:

Markdown
Скопировать код
Цвет до преобразования (до-hex): **255**
Цвет после преобразования (после-hex): **"0xff"**

Работа с большими числами и значение функции chr()

Функция chr() используется для вывода односимвольной строки на соответствие целому числу, однако она не всегда является подходящим решением для шестнадцатеричных преобразований.

Использование chr() для получения шестнадцатеричного значения:

При работе с символом ASCII, представленным шестнадцатеричным числом в диапазоне до 255:

Python
Скопировать код
char_repr = chr(65)
hex_repr = format(ord(char_repr), 'x')
print(char_repr, hex_repr)  # результат: "A 41"

Обработка больших чисел:

Для обработки целых чисел больше 255 лучшим решением станет функция hex():

Python
Скопировать код
large_hex = format(4096, 'x')
print(large_hex)  # результат: "1000"

Обращаем внимание на префикс ‘0x’

Префикс "0x" обозначает шестнадцатеричное число. В зависимости от задачи, его можно использовать или нет.

Без префикса ‘0x’:

Python
Скопировать код
no_prefix_hex = hex(255)[2:]
print(no_prefix_hex)  # результат: "ff"

С префиксом ‘0x’:

Python
Скопировать код
with_prefix_hex = "0x" + format(255, 'x')
print(with_prefix_hex)  # результат: "0xff"

Полезные материалы

  1. Встроенные функции — официальная документация Python 3.12.2 — информация о функции hex().
  2. Встроенные типы — документация Python 3.12.2 — информация о методе str.format().
  3. Лексический анализ — документация Python 3.12.2 — подробности о f-строках.
  4. Применение f-строк в Python — Real Python — практические примеры использования f-строк.
  5. string — основные операции со строками — документация Python 3.12.2 — спецификация форматирования строк.
  6. Функция hex() на w3schools — примеры использования функции hex().
  7. Преобразование int в hex с помощью hex() — Programiz — использование функции hex().