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.
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'
Je pense que c'est ce que tu veux:
>>> def twoDigitHex( number ):
... return '%02x' % number
...
>>> twoDigitHex( 2 )
'02'
>>> twoDigitHex( 255 )
'ff'