Convertir un octet en hexadécimal en Python

Rayven Esplanada 30 janvier 2023
  1. Initialiser un octet littéral en Python
  2. Utilisez la méthode hex() pour convertir un octet en hexadécimal en Python
  3. Utilisez le module binascii pour convertir un octet en hexadécimal en Python
Convertir un octet en hexadécimal en Python

Ce tutoriel présente comment convertir des octets en hexadécimal en Python.

Le type de données en Python est une séquence d’octets qui peut être stockée sur le disque comme une variable, qui peut ensuite être encodée et décodée. Ils sont déclarés comme une chaîne de caractères mais préfixés par le caractère b. Les octets acceptent les caractères Unicode spéciaux préfixés par le caractère \x.

Initialiser un octet littéral en Python

Nous donnerons un exemple d’octet littéral, déclarerons une chaîne de caractères spéciaux et utiliserons la fonction encode('utf-8') pour la convertir en octet littéral.

byte_var = "γιαούρτι - yogurt".encode("utf-8")

print(byte_var)

Production :

b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'

La sortie de encode() donnera un octet littéral préfixé avec le caractère b et les caractères spéciaux convertis en symboles Unicode.

Maintenant que la déclaration d’un octet est couverte, procédons à la conversion d’un octet en hexadécimal.

Utilisez la méthode hex() pour convertir un octet en hexadécimal en Python

La hex() méthode introduite par Python 3.5 la convertit en une chaîne hexadécimale.

Dans ce cas, l’argument sera de type octet de données à convertir en hexadécimal.

byte_var = "γιαούρτι - yogurt".encode("utf-8")

print("Byte variable: ", byte_var)
print("Hexadecimal: ", byte_var.hex())

Production :

Byte variable:  b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal:  ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274

Utilisez le module binascii pour convertir un octet en hexadécimal en Python

Le module Python binascii contient des fonctions utilitaires efficaces pour les opérations binaires et ASCII.

Dans ce module, il y a une fonction hexlify() qui retourne une valeur hexadécimale de l’argument donné, qui est une valeur binaire.

Dans cet exemple, l’argument sera la variable d’octet à convertir en hexadécimal.

import binascii

byte_var = "γιαούρτι - yogurt".encode("utf-8")

print("Byte variable: ", byte_var)
print("Hexadecimal: ", binascii.hexlify(byte_var))

Production :

Byte variable:  b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal:  b'ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274'

Notez que la valeur de retour de hexlify() retourne un octet littéral, contrairement à hex(), qui retourne une chaîne convertie.

Si vous voulez convertir le résultat en une chaîne de caractères, utilisez la fonction decode('utf-8').

import binascii

byte_var = "γιαούρτι - yogurt".encode("utf-8")

print("Byte variable: ", byte_var)
print("Hexadecimal: ", "" + binascii.hexlify(byte_var).decode("utf-8"))

Production :

Byte variable:  b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal:  ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274

Le résultat hexadécimal est maintenant converti en une chaîne de caractères à partir d’un octet littéral.

En résumé, nous avons couvert 2 méthodes de conversion d’un octet en hexadécimal en Python. La méthode la plus simple est d’utiliser la fonction intégrée hex() pour un octet littéral. Alternativement, la fonction hexlify() du module binascii peut aussi être utilisée pour produire la même sortie.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Article connexe - Python Bytes

Article connexe - Python Hex