Как преобразовать шестнадцатеричную строку в целое число в Python? - PullRequest
4 голосов
/ 14 апреля 2010

Как конвертировать

x = "0x000000001" # hex number string

до

y = "1"

Ответы [ 5 ]

14 голосов
/ 14 апреля 2010

Вы можете сделать:

y = int("0x000000001", 16)

в вашем случае:

y = int(x, 16)

Похоже, вы хотите преобразовать int в строку:

y = str(int(x, 16))
4 голосов
/ 14 апреля 2010

Используйте int() и укажите базу, в которой находится ваш номер (в вашем случае 16).
Затем примените str(), чтобы преобразовать его обратно в строку:

y = str(int(x, 16))

Примечание: если вы опустите базу, то будет использоваться база по умолчанию 10, что в вашем случае приведет к ValueError.

2 голосов
/ 14 апреля 2010
>>> int("0x000000001", 16)
1
0 голосов
/ 05 августа 2016

вы можете сделать:

y = int(x, 0)  # '0' ;python intepret x according to string 'x'.

В официальной документации это объясняется как «Если основание равно нулю, правильное основание определяется на основе содержимого строки;»

0 голосов
/ 22 мая 2015

В Python 2.7 возникла проблема с преобразованием шестнадцатеричного файла из прочитанного двоичного файла

Python 3 не имеет этой проблемы

f=open(file_name,'rb')
raw = f.read()

print int(raw[6])    #error invalid literal for int with base 10:
print ord(raw[6])    #Work
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...