Python перевод hexadecimal str в hexadecimal int

Функция hex возвращает тип данных строку, а нужно число. Использую библиотеку ctypes, требуется преобразовывать символы юникода в ushort

type(hex(ord('h'))) # -> str
type(0x68)          # -> int

Как я могу получить hex-число в типе int?


Ответы (1 шт):

Автор решения: Michael Tetelev

Если я правильно понял, то вы хотите перевести 0x123в 291. Если так, то

>>> int('0x123', 16)
# 291
>>> int('0x123'[2:], 16)  # => int('123', 16)
# 291

Также, ord -> int:

>>> ord('h')
104

Если же вы хотите просто работать с '0x123' как с int (складывать-умножать-вычитать), то приведите его к int10 (или не переводите в hex :) ), а в, собственно, hex переводите только когда нужно куда-то передать значение в виде 16-числа.

→ Ссылка