web-dev-qa-db-fra.com

Python Hexadécimal

Comment convertir un nombre décimal en hexadécimal au format suivant (au moins deux chiffres, sans remplissage, sans préfixe 0x)?

Entrée: 255 Sortie: ff

Entrée: 2 Sortie: 02

J'ai essayé hex(int)[2:] mais il semble que le premier exemple soit affiché, mais pas le second.

67
VikkyB

Utilisez la fonction format()) avec le format '02x'.

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

La partie 02 indique à format() d'utiliser au moins 2 chiffres et d'utiliser des zéros pour le régler à la longueur, x signifie hexadécimal en minuscule.

Le Mini langage de spécification de format vous donne également X pour une sortie hexagonale en majuscule, et vous pouvez préfixer la largeur du champ. avec # pour inclure un préfixe 0x ou 0X (selon que vous utilisiez x ou X comme formateur). Tenez simplement compte du fait que vous devez ajuster la largeur du champ pour permettre ces 2 caractères supplémentaires:

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

Je pense que c'est ce que tu veux:

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