Я имею строку из четырех чисел hex
как:Python: преобразование строки из нескольких шестнадцатеричных значений в целое
"0x00 0x01 0x13 0x00"
что эквивалентно 0x00011300
. Как я могу преобразовать это шестнадцатеричное значение в целое?
Я имею строку из четырех чисел hex
как:Python: преобразование строки из нескольких шестнадцатеричных значений в целое
"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
Ответ находится здесь Convert hex string to int in Python.
Без 0x префикса, необходимо указать базу в явном виде, в противном случае нет никакого способа, чтобы сказать:
x = int("deadbeef", 16)
С 0x префикс, Python можно выделить шестигранные и десятичной автоматически.
print int("0xdeadbeef", 0)
3735928559
print int("10", 0)
10
(Вы должны указать 0 в качестве основания для того, чтобы ссылаться на этот префикс угадать поведение, опуская второй параметр означает считать базу-10 Смотрите комментарии для более подробной информации..)
>>> s="0x00 0x01 0x13 0x00"
>>> a=0
>>> for b in s.split():
... a = a*256 + int(b,16)
...
>>> a
70400
>>> hex(a)
'0x11300'
Возможный дубликат [Как получить шестнадцатеричную строку из целого числа со знаком] (http://stackoverflow.com/questions/228702/how-to-get-hex-string-from-signed-integer) – Danieboy