Подтвердить что ты не робот

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

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

Вход: 255 Выход: ff

Вход: 2 Выход: 02

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

4b9b3361

Ответ 1

Используйте format() функцию с форматом '02x'.

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

Часть 02 сообщает format() использовать не менее 2-х цифр и использовать нули, чтобы поместить ее в длину, x означает шестнадцатеричное шестнадцатеричное число.

Формат спецификаций Mini Language также дает вам x для верхнего шестнадцатеричного вывода, и вы можете префикс ширины поля с помощью # до включают префикс 0x или 0x (в зависимости от того, как вы использовали x или x в качестве форматирования). Просто учтите, что вам нужно отрегулировать ширину поля, чтобы разрешить эти дополнительные 2 символа:

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

Ответ 2

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

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

Ответ 3

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

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