Как преобразовать int в шестнадцатеричную строку? - PullRequest
189 голосов
/ 16 февраля 2010

Я хочу взять целое число (которое будет <= 255) в шестнадцатеричное строковое представление </p>

например: я хочу пройти в 65 и выйти '\x41' или 255 и получить '\xff'.

Я пытался сделать это с struct.pack('c', 65 ), но это подавляет все, что выше 9, так как он хочет принять одну строку символов.

Ответы [ 12 ]

1 голос
/ 05 сентября 2018

С format(), согласно формат-примеров , мы можем сделать:

>>> # format also supports binary numbers
>>> "int: {0:d};  hex: {0:x};  oct: {0:o};  bin: {0:b}".format(42)
'int: 42;  hex: 2a;  oct: 52;  bin: 101010'
>>> # with 0x, 0o, or 0b as prefix:
>>> "int: {0:d};  hex: {0:#x};  oct: {0:#o};  bin: {0:#b}".format(42)
'int: 42;  hex: 0x2a;  oct: 0o52;  bin: 0b101010'
0 голосов
/ 28 июля 2017

В качестве альтернативного представления вы можете использовать

[in] '%s' % hex(15)
[out]'0xf'
...