Дополнительно
Как преобразовать int в шестнадцатеричную строку?
Я хочу взять целое число (которое будет < = 255) в шестнадцатеричное представление строки
например.: Я хочу пройти в 65
и выйти ' \ x41 '
или 255
и получить ' \ xff '
.
Я пытался сделать это с struct.pack ('c',
65)
, но это душит что-либо выше 9
, так как он хочет взять в одной строке символов.
196
12
Вы ищете функцию
chr
.Вы, кажется, смешиваете десятичные представления целых чисел и шестнадцатеричные представления целых чисел, поэтому не совсем понятно, что вам нужно. Основываясь на описании, которое вы дали, я думаю, что один из этих фрагментов показывает, что вы хотите.
Обратите внимание, что это сильно отличается от строки, содержащей целое число в виде гекса . Если это то, что вы хотите, используйте встроенный
hex
.Это преобразует целое число в двухзначную шестнадцатеричную строку с префиксом 0x:
Как насчет
hex ()
?Если вы действительно хотите иметь
\
перед, вы можете сделать:Попробуй:
или
Документация Python гласит: «Держите это под подушкой: http://docs.python.org/library/index.html»
Позвольте мне добавить это, потому что иногда вы просто хотите однозначное представление:
А теперь с новыми строками формата
f ''
вы можете сделать:Если вы хотите упаковать структуру со значением < 255 (один байт без знака, uint8_t) и в итоге получить строку из одного символа, вы, вероятно, ищете < a href = "http://docs.python.org/library/struct.html#format-characters" > формат B вместо c < >. C преобразует символ в строку (сам по себе не слишком полезный), а B преобразует целое число.
(И да, 65 - это \ x41, а не \ x65.)
Класс структуры также будет удобно обрабатывать конечность для связи или других целей.
Обратите внимание, что для больших значений
hex ()
все еще работает (некоторые другие ответы не работают):Python 2:
0x4354467b746f6f5f736d616c6c3f7dL
Python 3:0x4354467b746f6f5f736d616c6c3f7d
Для расшифрованного сообщения RSA можно сделать следующее:
Это сработало лучше всего для меня
Измените (2), если вы хотите число с большей шириной (2 для 2 шестигранных символов с печатью), чтобы 3 дало вам следующее
Я хотел, чтобы случайное целое число было преобразовано в шестизначную шестнадцатеричную строку с # в начале. Чтобы получить это, я использовал
С помощью
format ()
, согласно format-examples, мы можем сделать:Например:
В качестве альтернативного представления вы можете использовать