Chaîne en hexadécimal en Python

Manav Narula 10 octobre 2023
Chaîne en hexadécimal en Python

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.

Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Article connexe - Python String

Article connexe - Python Hex