Перевод чисел в шестнадцатеричные строки в Python
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Python предоставляет функцию hex()
для преобразования целого числа в шестнадцатеричную строку:
hex_value = hex(255)
print(hex_value) # результат: "0xff"
Если же вам требуется получить чистую шестнадцатеричную строку без префикса '0x':
hex_str = format(255, 'x')
print(hex_str) # результат: "ff"
Для вывода шестнадцатеричных символов в верхнем регистре используйте:
hex_upper = format(255, 'X')
print(hex_upper) # результат: "FF"
А для добавления ведущих нулей можно применить спецификаторы формата:
hex_padded = format(255, '04x')
print(hex_padded) # результат: "00ff"
Преобразование в шестнадцатеричную строку с применением форматирования строк
Python предлагает несколько вариантов форматирования строк. Рассмотрим их подробнее.
Форматирование с использованием %
:
hex_format = "%0.2X" % 255
print(hex_format) # результат: "FF"
Использование метода .format()
и f-строк:
При помощи шестнадцатеричных строк в нижнем регистре:
hex_formatted = "{:02x}".format(255)
print(hex_formatted) # результат: "ff"
При использовании шестнадцатеричных строк в верхнем регистре с f-строками:
hex_fstring = f"{255:02X}"
print(hex_fstring) # результат: "FF"
Контроль ширины и заполнения
Заданный размер и заполнение нулями гарантируют корректное и понятное отображение шестнадцатеричных строк.
Заполнение нолями:
# С использованием метода format()
padded_hex = format(255, '0>4X')
print(padded_hex) # результат: "00FF"
# Используя f-строку
padded_fstring = f"{255:04x}"
print(padded_fstring) # результат: "00ff"
Установка минимальной ширины:
# Заполнение нулями до заданной ширины без префикса '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 можно визуализировать вот так:
int_number = 255
Затем применяем функцию hex()
:
hex_string = hex(int_number)
Этот процесс аналогичен определению кода цвета в цифровом изображении:
Цвет до преобразования (до-hex): **255**
Цвет после преобразования (после-hex): **"0xff"**
Работа с большими числами и значение функции chr()
Функция chr()
используется для вывода односимвольной строки на соответствие целому числу, однако она не всегда является подходящим решением для шестнадцатеричных преобразований.
Использование chr()
для получения шестнадцатеричного значения:
При работе с символом ASCII, представленным шестнадцатеричным числом в диапазоне до 255:
char_repr = chr(65)
hex_repr = format(ord(char_repr), 'x')
print(char_repr, hex_repr) # результат: "A 41"
Обработка больших чисел:
Для обработки целых чисел больше 255 лучшим решением станет функция hex()
:
large_hex = format(4096, 'x')
print(large_hex) # результат: "1000"
Обращаем внимание на префикс ‘0x’
Префикс "0x" обозначает шестнадцатеричное число. В зависимости от задачи, его можно использовать или нет.
Без префикса ‘0x’:
no_prefix_hex = hex(255)[2:]
print(no_prefix_hex) # результат: "ff"
С префиксом ‘0x’:
with_prefix_hex = "0x" + format(255, 'x')
print(with_prefix_hex) # результат: "0xff"
Полезные материалы
- Встроенные функции — официальная документация Python 3.12.2 — информация о функции
hex()
. - Встроенные типы — документация Python 3.12.2 — информация о методе
str.format()
. - Лексический анализ — документация Python 3.12.2 — подробности о f-строках.
- Применение f-строк в Python — Real Python — практические примеры использования f-строк.
- string — основные операции со строками — документация Python 3.12.2 — спецификация форматирования строк.
- Функция hex() на w3schools — примеры использования функции
hex()
. - Преобразование int в hex с помощью hex() — Programiz — использование функции
hex()
.