HOWTO · Python
Chaîne en hexadécimal en Python
Ce tutoriel montre comment convertir une chaîne en hexadécimal en Python
Sur cette page
Les valeurs hexadécimales ont une base de 16. En Python, les chaînes hexadécimales sont préfixées par 0x.
La fonction hex() permet de convertir un entier décimal en son nombre hexadécimal respectif. Par exemple,
a = 102
print(hex(a))
Production:
0x66
Nous pouvons également convertir les valeurs flottantes en hexadécimal en utilisant la fonction hex() avec la fonction float(). Le code suivant implémente cela.
a = 102.18
print(float.hex(a))
Production:
0x1.98b851eb851ecp+6
Nous ne pouvons pas convertir une chaîne en utilisant cette fonction. Donc, si nous avons une situation où nous avons une chaîne hexadécimale et que nous voulons la convertir en nombre hexadécimal, nous ne pouvons pas le faire directement. Dans de tels cas, nous devons convertir cette chaîne en la valeur décimale requise en utilisant la fonction int() puis la convertir en nombre hexadécimal en utilisant la fonction hex() évoquée précédemment.
Le code suivant montre cela.
hex_s = "0xEFA"
a = int(hex_s, 16)
hex_n = hex(a)
print(hex_n)
Production:
0xefa
Les caractères de la chaîne n’ont aucune valeur hexadécimale correspondante. Cependant, si nous convertissons une chaîne en objet de type octets, en utilisant la fonction encode(), nous pouvons la convertir en sa valeur hexadécimale en utilisant la fonction hex().
Par exemple,
s = "Sample String".encode("utf-8")
print(s.hex())
Production:
53616d706c6520537472696e67
Dans le code ci-dessus, nous encodons la chaîne dans le type utf-8 et la convertissons en types d’octets.