Python: преобразовать строку из нескольких шестнадцатеричных значений в целое число

У меня есть строка из четырех чисел hex, например:

"0x00 0x01 0x13 0x00" 

что эквивалентно 0x00011300. Как я могу преобразовать это шестнадцатеричное значение в целое число?


person Naga Suresh.Thota    schedule 31.01.2017    source источник
comment
Возможный дубликат Как получить шестнадцатеричную строку из целого числа со знаком   -  person Danieboy    schedule 31.01.2017


Ответы (2)


Поскольку у вас есть строка значений 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
person Anonymous    schedule 31.01.2017

Ответ здесь Преобразовать шестнадцатеричную строку в int в Python.

Без префикса 0x необходимо явно указать базу, иначе невозможно сказать:

x = int("deadbeef", 16)

С префиксом 0x Python может автоматически различать шестнадцатеричные и десятичные числа.

print int("0xdeadbeef", 0)
3735928559

print int("10", 0)
10

(Вы должны указать 0 в качестве базы, чтобы вызвать это поведение угадывания префикса; опускание второго параметра означает, что предполагается база 10. См. комментарии для получения дополнительной информации.)

person Community    schedule 31.01.2017