Python Шестнадцатеричный


как преобразовать десятичное число в шестнадцатеричное в следующем формате (по крайней мере две цифры, с нулевым дополнением, без префикса 0x)?

вход: 255 выход:ff

вход: 2 выход: 02

пробовал hex(int)[2:] но кажется, что он отображает первый пример, но не второй.

3 53

3 ответа:

использовать format() функции С .

>>> format(255, '02x')
'ff'
>>> format(2, '02x')
'02'

The 02 говорит format() чтобы использовать по крайней мере 2 цифры и использовать нули, чтобы заполнить его по длине,x означает шестнадцатеричное число в нижнем регистре.

The Формат Спецификации Мини-Язык также дает вам X для шестнадцатеричного вывода в верхнем регистре, и вы можете префикс ширины поля с # включить 0x или 0X префикс (в зависимости от wether вы использовали x или X как праматерия). Просто примите во внимание, что вам нужно настроить ширину поля, чтобы учесть эти дополнительные 2 символа:

>>> format(255, '02X')
'FF'
>>> format(255, '#04x')
'0xff'
>>> format(255, '#04X')
'0XFF'

Я думаю, что это то, что вы хотите:

>>> def twoDigitHex( number ):
...     return '%02x' % number
... 
>>> twoDigitHex( 2 )
'02'
>>> twoDigitHex( 255 )
'ff'

другое решение-это:

>>> "".join(list(hex(255))[2:])
'ff'

вероятно, архаичный ответ, но функциональный.