Я хочу взять целое число (который будет <= 255), к шестнадцатеричному строковому представлению
например: Я хочу передать в 65
и выйдите '\x41'
, или 255
и доберитесь '\xff'
.
Я попытался делать это с struct.pack('c',
65)
, но это дросселирует на чем-либо выше 9
так как это хочет взять в односимвольной строке.
Вы ищете функцию chr
.
Похоже, вы смешиваете десятичное представление целых чисел и шестнадцатеричное представление целых чисел, поэтому не совсем понятно, что вам нужно. Основываясь на приведенном вами описании, я думаю, что один из этих фрагментов показывает, что вам нужно.
>>> chr(0x65) == '\x65'
True
>>> hex(65)
'0x41'
>>> chr(65) == '\x41'
True
Обратите внимание, что это совсем не то же самое, что строка, содержащая целое число в шестнадцатеричном виде. Если вы хотите именно этого, используйте встроенный модуль hex
.
Это преобразует целое число в двузначную шестнадцатеричную строку с префиксом 0x:
strHex = "0x%0.2X" % 255
Попробуйте:
"0x%x" % 255 # => 0xff
или
"0x%X" % 255 # => 0xFF
В документации Python сказано: "Храните это под подушкой: http://docs.python.org/library/index.html"
Что насчет hex()
?
hex(255) # 0xff
Если вы действительно хотите иметь \
впереди, вы можете сделать:
print '\\' + hex(255)[1:]