Как преобразовать шестнадцатеричную строку в шестнадцатеричный номер?

У меня есть целое число в ex. 16, и я пытаюсь преобразовать это число в шестнадцатеричный номер. Я пытался добиться этого, используя функцию hex, но всякий раз, когда вы предоставляете целочисленное число в шестнадцатеричную функцию, оно возвращает строковое представление шестнадцатеричного числа,

my_number = 16
hex_no = hex(my_number)    
print type(hex_no) // It will print type of hex_no as str.

Может кто-нибудь, пожалуйста, скажите мне, как преобразовать шестнадцатеричный номер в строчном формате в просто шестнадцатеричный номер.
Спасибо!!

Ответы

Ответ 1

>>> print int('0x10', 16)
16

Ответ 2

Пример кода:

print "%x"%int("2a",16)

Ответ 3

Вы спрашиваете, как преобразовать строковое шестнадцатеричное значение шестнадцатеричного значения '16' в целое число (то есть в конечном итоге с целым числом с десятичным значением 22)? Это не ясно из вашего вопроса. Если это так, вы, вероятно, хотите, чтобы int ('16 ', 16)

Ответ 4

Использование форматирования строк (новое сначала, затем старое):

>>> '{:x}'.format( 12345678 )
'bc614e'

>>> '%x' % ( 12345678 )
'bc614e'

Ответ 5

Ваш код работает для меня, никакие апострофы не добавлены.

Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> my_number = 16
>>> hex_no = hex(my_number)
>>> print hex_no
0x10
>>> _

Заметьте, кстати, что нет такой вещи, как "шестнадцатеричное число". Hex - это просто способ указать числовое значение. В памяти компьютера это числовое значение обычно представлено в двоичном формате, независимо от того, как оно указано в вашем исходном коде (десятичный, шестнадцатеричный, любой).

Приветствия и hth.,

- Alf

Ответ 6

С Python 2.6.5 в MS Windows Vista интерпретатор командной строки ведет себя следующим образом:

>>>hex(16)
'0x10'
>>>print hex(16)
0x10

Я предполагаю, что это нормальное поведение:

>>>'abc'
'abc'
>>>print 'abc'
abc

Я надеюсь, что это поможет

Ответ 7

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

Чтобы ответить на ваш вопрос, НЕВОЗМОЖНО преобразовать результирующее строковое представление шестнадцатеричных данных в шестнадцатеричные числа (целочисленное представление).

Потому что, когда вы конвертируете целое число в гекс, выполнив

>>> a = hex(34)
>>> print type(a)
<type 'str'>
>>> print a
0x22
>>> a
'0x22'

И некоторые ответы были перепутаны здесь,

>>> print a
0x22
>>> a
'0x22'

При вводе Отпечатайте интерпретатор это приведет строковые данные без кавычек и если вы просто ввести имя переменного без использования оператора печати, то было бы напечатать строку данные с одной/двойными кавычками.

Хотя результирующим значением являются шестнадцатеричные данные, но представление находится в STRING.

Согласно документации по Python, вы не можете конвертировать в шестнадцатеричное число, как я уже говорил ранее.

Благодарю.

Ответ 8

def add_hex2(hex1, hex2):
    """add two hexadecimal string values and return as such"""
    return hex(int(hex1, 16) + int(hex2, 16))
print add_hex2('0xff', '0xff')  # 0x1fe