Шестнадцатеричные строки имеют префикс «0x» . В Python, если у вас есть префикс «0x» и допустимая строка, используйте метод int (string, 0) для получения целого числа. 0 предоставляется для указания функции интерпретировать основание из префикса.
Python String to Hex
Для преобразования Python String в шестнадцатеричный используйте встроенный метод hex (). Метод hex () преобразует целое число в соответствующую шестнадцатеричную строку. Используйте функцию int (x, base) с 16 в качестве основы для преобразования строки в целое число.
Синтаксис hex ()
hex(n)
Метод hex () принимает один обязательный аргумент — n: целое число.
Возвращаемое значение
Метод hex () преобразует целое число в соответствующее шестнадцатеричное число в строковой форме и возвращает его. Возвращаемая шестнадцатеричная строка начинается с префикса 0x, что указывает на ее шестнадцатеричную форму.
Пример преобразования строки в шестнадцатеричный
hex_string = "0xFF" an_integer = int (hex_string, 16) hex_value = hex (an_integer) print (hex_value)
Вывод
0xff
Из вывода видно, что возвращаемая строка является шестнадцатеричной, поскольку начинается с 0xff .
Python hex () с объектом
Мы также можем преобразовать объект Python в хэш значение с помощью метода hex (). Создайте собственный класс и определите функцию __ index __ () , чтобы использовать с ним функцию hex ().
class То же: no = 0 def __index __ (self): print ('__ index__ функция вызвана') return self.nodt = Ditto () dt.no = 19print (hex (dt))
Вывод
__ index__, вызываемая функция 0x13
Шестнадцатеричное представление числа с плавающей запятой
Используйте метод float.index () для преобразования числа с плавающей запятой в шестнадцатеричный.
number = 0.0print (number, "in hex = ", float.hex (число)) число = 19,5 print (число," in hex = ", float.hex (число))
Вывод
0.0 в шестнадцатеричном формате = 0x0.0p + 019.5 в шестнадцатеричном формате = 0x1.3800000000000p + 4
Ошибки и исключения для преобразования строки в шестнадцатеричный.
Функция hex () выдает ошибку TypeError , когда в качестве параметров передается что-либо, кроме констант целочисленного типа.
hex_string = "0xFF" шестнадцатеричное_значение = шестнадцатеричное (шестнадцатеричная_строка) pri nt (hex_value)
Вывод
TypeError: объект 'str' не может быть интерпретирован как целое число
Вы можете видеть, что функция hex () всегда ожидает целое число, но у нее есть строка, и поэтому она выдает ошибку. Метод hex () используется во всех стандартных преобразованиях, таких как преобразование шестнадцатеричного числа в десятичное , шестнадцатеричное в восьмеричное и шестнадцатеричное в двоичное
Если вы хотите преобразовать шестнадцатеричную строку (например, 0xAD4) в шестнадцатеричное число, используйте функцию hex ().
Сначала используйте функцию int () со вторым параметром 16, чтобы преобразовать шестнадцатеричную строку в целое число.
Затем используйте функцию hex (), чтобы преобразовать его обратно в шестнадцатеричное число.
См. также
Python oct ()
Формат Python
f-строки Python