Ответ 1
>>> print int('0x10', 16)
16
У меня есть целое число в ex. 16, и я пытаюсь преобразовать это число в шестнадцатеричный номер. Я пытался добиться этого, используя функцию hex, но всякий раз, когда вы предоставляете целочисленное число в шестнадцатеричную функцию, оно возвращает строковое представление шестнадцатеричного числа,
my_number = 16
hex_no = hex(my_number)
print type(hex_no) // It will print type of hex_no as str.
Может кто-нибудь, пожалуйста, скажите мне, как преобразовать шестнадцатеричный номер в строчном формате в просто шестнадцатеричный номер.
Спасибо!!
>>> print int('0x10', 16)
16
Пример кода:
print "%x"%int("2a",16)
Вы спрашиваете, как преобразовать строковое шестнадцатеричное значение шестнадцатеричного значения '16' в целое число (то есть в конечном итоге с целым числом с десятичным значением 22)? Это не ясно из вашего вопроса. Если это так, вы, вероятно, хотите, чтобы int ('16 ', 16)
Использование форматирования строк (новое сначала, затем старое):
>>> '{:x}'.format( 12345678 )
'bc614e'
>>> '%x' % ( 12345678 )
'bc614e'
Ваш код работает для меня, никакие апострофы не добавлены.
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
С Python 2.6.5 в MS Windows Vista интерпретатор командной строки ведет себя следующим образом:
>>>hex(16)
'0x10'
>>>print hex(16)
0x10
Я предполагаю, что это нормальное поведение:
>>>'abc'
'abc'
>>>print 'abc'
abc
Я надеюсь, что это поможет
Я думаю, что здесь большинство ответов были неверно истолкованы, или они неправильно поняли вопрос.
Чтобы ответить на ваш вопрос, НЕВОЗМОЖНО преобразовать результирующее строковое представление шестнадцатеричных данных в шестнадцатеричные числа (целочисленное представление).
Потому что, когда вы конвертируете целое число в гекс, выполнив
>>> a = hex(34)
>>> print type(a)
<type 'str'>
>>> print a
0x22
>>> a
'0x22'
И некоторые ответы были перепутаны здесь,
>>> print a
0x22
>>> a
'0x22'
При вводе Отпечатайте интерпретатор это приведет строковые данные без кавычек и если вы просто ввести имя переменного без использования оператора печати, то было бы напечатать строку данные с одной/двойными кавычками.
Хотя результирующим значением являются шестнадцатеричные данные, но представление находится в STRING.
Согласно документации по Python, вы не можете конвертировать в шестнадцатеричное число, как я уже говорил ранее.
Благодарю.
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