python преобразовать строку 0x0xxx в numeri c тип - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь преобразовать шестнадцатеричную строку в целое число без потери формата. У меня есть пример шестигранной строки 0x00001. Эта шестнадцатеричная строка была создана путем объединения следующих

hex_offset = driver_data['hex_offset'].rstrip('H')
address_start = 0x0

#hex_offset = 000001

new_address = '0x0' + '{}'.format(hex_offset)
print(int(new_address, base = 0))
Result: '0x00001'

. Я пытался использовать int с базой 0 , но вместо преобразования его в тип numeri c. он просто отображает значение 1 Я хочу, чтобы 0x0001 отображалось как число c тип не как строка

Спасибо за помощь!

1 Ответ

0 голосов
/ 18 июня 2020

используйте параметр int Base как 16:

hex_offset = driver_data['hex_offset'].rstrip('H')
address_start = 0x0
new_address = '0x0' + '{}'.format(hex_offset)
hex_address = eval(new_address)
print(type(hex_address)) #  int
#you get the int value 'hex_address'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...