У меня есть строка из четырех чисел hex
, например:
"0x00 0x01 0x13 0x00"
что эквивалентно 0x00011300
. Как я могу преобразовать это шестнадцатеричное значение в целое число?
У меня есть строка из четырех чисел hex
, например:
"0x00 0x01 0x13 0x00"
что эквивалентно 0x00011300
. Как я могу преобразовать это шестнадцатеричное значение в целое число?
Поскольку у вас есть строка значений hex
. Вы можете удалить ' 0x'
из строки, чтобы получить строку с одним шестнадцатеричным числом. Например:
my_str = "0x00 0x01 0x13 0x00"
hex_str = my_str.replace(' 0x', '')
где значение, удерживаемое hex_str
, будет:
'0x00011300' # `hex` string
Теперь вы можете преобразовать строку hex
в int
следующим образом:
>>> int(hex_str, 16)
70400
Ответ здесь Преобразовать шестнадцатеричную строку в int в Python.
Без префикса 0x необходимо явно указать базу, иначе невозможно сказать:
x = int("deadbeef", 16)
С префиксом 0x Python может автоматически различать шестнадцатеричные и десятичные числа.
print int("0xdeadbeef", 0)
3735928559
print int("10", 0)
10
(Вы должны указать 0 в качестве базы, чтобы вызвать это поведение угадывания префикса; опускание второго параметра означает, что предполагается база 10. См. комментарии для получения дополнительной информации.)