Вот три способа преобразования строки в число шестнадцатеричного формата в Python.
Способ 1: использование функции hex()
Чтобы преобразовать строку в шестнадцатеричный формат в Python, вы можете использовать метод hex(). Он используется для преобразования указанного целого числа в шестнадцатеричное строковое представление. Используйте int(x, base) с 16 в качестве основания для преобразования строки x в целое число.
Пример
|
1 2 3 4 5 6 |
hex_string = "0xFF" an_integer = int(hex_string, 16) hex_value = hex(an_integer) print(hex_value) |
Выход
|
1 |
0xff |
Способ 2: использование метода encode()
Чтобы преобразовать строку в байт, вы также можете использовать метод encode().
Пример
|
1 2 3 4 5 6 7 8 |
str = "database".encode('utf-8') print(str) hex_str = str.hex() print(type(hex_str)) |
Выход
|
1 2 3 |
b'database' <class 'str'> |
Способ 3: применение метода ast.literal_eval()
Чтобы использовать метод ast.literal_eval(), сначала преобразуйте строку в целое число с помощью метода literal_eval(), который вернет целое число, а затем преобразуйте целое число в шестнадцатеричное значение с помощью метода hex().
Пример
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
from ast import literal_eval str = "0xFFF" # Convert the str to an integer con_val = literal_eval(str) # Print the value and type of the converted value print(con_val) print("Type:", type(con_val)) # Pass the converted value to the hex() method hex_value = hex(con_val) # Print the hex value print(hex_value) # Check the type of the hex value print("Type:", type(hex_value)) |
Выход
|
1 2 3 4 5 |
4095 Type: <class 'int'> 0xfff Type: <class 'str'> |
TypeError: объект ‘str’ не может быть интерпретирован как целое число
Функция hex() выдает ошибку TypeError, когда в качестве параметров передается что-либо, кроме констант целочисленного типа.
Пример
|
1 2 3 4 |
hex_string = "0xFF" hex_value = hex(hex_string) print(hex_value) |
Выход
|
1 |
TypeError: 'str' object cannot be interpreted as an integer |
