Функция hex() в Python

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

hex() — это встроенная функция Python, которая преобразует целое число в соответствующую ему шестнадцатеричную строку.

Синтаксис

Синтаксис функции hex() следующий:

hex(x)

где x — это целое число, которое необходимо преобразовать.

Основное использование

Основное использование hex() — преобразование целых чисел в шестнадцатеричные строки.

print(hex(255))  # 0xff

Возвращаемый формат

Важно отметить, что hex() возвращает строку, которая начинается с префикса 0x, указывающего на шестнадцатеричный формат.

print(type(hex(255)))  

# <class 'str'>

Преобразование обратно в целое число

Можно преобразовать шестнадцатеричную строку обратно в целое число, используя функцию int(), указав 16 в качестве второго аргумента.

print(int('0xff', 16))  # 255

Шестнадцатеричные числа в Python

В Python можно также определять шестнадцатеричные числа напрямую, используя префикс 0x:

num = 0xff
print(num)  # 255

Преобразование отрицательных чисел

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

print(hex(-255))  # -0xff

Преобразование чисел с плавающей запятой

Функция hex() не принимает числа с плавающей запятой. Если попытаться передать ей число с плавающей запятой, она вызовет TypeError.

print(hex(23.1))  # TypeError: 'float' object cannot be interpreted as an integer

Если вам нужно преобразовать число с плавающей запятой в шестнадцатеричное представление, используйте метод float.hex():

print(float.hex(23.1))  # 0x1.719999999999ap+4

Использование hex() без префикса «0x»

Если вам нужно получить шестнадцатеричное представление числа без префикса «0x», вы можете использовать срезы строк:

hex_value = hex(255)[2:]
print(hex_value)  # ff

Шестнадцатеричное представление байтовых строк

В некоторых случаях, вам может потребоваться представить байтовые строки в шестнадцатеричном формате. В Python это можно сделать с помощью метода .hex() для байтовых строк.

bytes_data = b'Hello, Python!'
print(bytes_data.hex())  # 48656c6c6f2c20507974686f6e21

Обратите внимание, что этот метод выводит шестнадцатеричные числа без префикса 0x и дает два шестнадцатеричных символа для каждого байта в строке.

Вывод

Функция hex() — это удобный инструмент для работы со шестнадцатеричными числами в Python. Она преобразует целые числа в их шестнадцатеричное представление, что может быть полезно при работе с цветами, байтами, криптографией или при низкоуровневом программировании.

Содержание: