Maison  >  Article  >  développement back-end  >  Décodage et codage de nombres hexadécimaux à l'aide de Python

Décodage et codage de nombres hexadécimaux à l'aide de Python

PHPz
PHPzavant
2023-08-19 14:09:222565parcourir

Décodage et codage de nombres hexadécimaux à laide de Python

Dans cet article, nous apprendrons comment décoder et encoder des nombres hexadécimaux à l'aide de Python.

Méthode à utiliser

  • Utilisez le module binascii

  • Utilisez le module base64

Méthode 1 : Utilisation du module Binascii

Dans le module binascii, il existe plusieurs méthodes pour convertir entre les représentations binaires et différentes représentations binaires codées en ASCII.

Si vous avez juste besoin d'encoder ou de décoder une chaîne brute de chiffres hexadécimaux, vous pouvez utiliser le module binascii.

Algorithme (étapes)

Vous trouverez ci-dessous les algorithmes/étapes pour effectuer la tâche requise. −

  • Utilisez le mot-clé import pour importer le module binascii.

  • Créez une variable pour stocker la chaîne d'octets d'entrée.

  • Encodez la chaîne d'octets d'entrée en un nombre hexadécimal à l'aide de la fonction b2a_hex() du module binascii.

  • Imprimez le nombre hexadécimal résultant de la chaîne d'octets d'entrée.

  • Utilisez la fonction a2b_hex() du module binascii pour décoder le nombre hexadécimal ci-dessus en une chaîne d'octets.

La traduction chinoise de

Exemple

est :

Exemple

Le programme suivant utilise les fonctions b2a_hex() et a2b_hex() pour encoder une chaîne d'octets d'entrée en un nombre hexadécimal et la décoder en chaîne d'octets.

# importing binascii module
import binascii

# input byte string 
inputByteString = b'tutorialspoint python'

# encoding input byte string into hexadecimal digits
hexdigits = binascii.b2a_hex(inputByteString)

# printing the resultant hexadecimal digits of the byte string 
print(hexdigits)

# decoding hexadecimal digits back into byte string 
print(binascii.a2b_hex(hexdigits))

Sortie

Lors de l'exécution du programme ci-dessus, la sortie suivante sera générée -

b'7475746f7269616c73706f696e7420707974686f6e'
b'tutorialspoint python'

Méthode 2 : Utiliser le module base64

Le module

base64 a également des fonctionnalités similaires. Il peut également encoder ou décoder des nombres hexadécimaux bruts.

Algorithme (étapes)

Vous trouverez ci-dessous les algorithmes/étapes pour effectuer la tâche requise. −

  • Utilisez le mot-clé import pour importer le module base64.

  • Créez une variable pour stocker la chaîne d'octets d'entrée.

  • Utilisez la fonction b16encode() du module base64 pour coder la chaîne d'octets d'entrée en chiffres hexadécimaux (hexdigits).

  • Imprimez le nombre hexadécimal résultant de la chaîne d'octets d'entrée.

  • Utilisez la fonction b16decode() du module base64 pour décoder le nombre hexadécimal ci-dessus en une chaîne d'octets et l'imprimer.

La traduction chinoise de

Exemple

est :

Exemple

Le programme suivant encode une chaîne d'octets d'entrée en un nombre hexadécimal et la décode en chaîne d'octets à l'aide des fonctions b16encode() et b16decode() -

# importing base64 module
import base64

# input byte string 
inputByteString = b'tutorialspoint python'

# encoding input byte byte string into hexadecimal digits
# using b16encode() function of base64 module
hexdigits = base64.b16encode(inputByteString)

# printing the resultant hexadecimal digits of the byte string 
print(hexdigits)

# decoding hexadecimal digits back into byte string 
print(base64.b16decode(hexdigits))

Sortie

Lors de l'exécution du programme ci-dessus, la sortie suivante sera générée -

b'7475746f7269616c73706f696e7420707974686f6e'
b'tutorialspoint python'

La conversion vers et depuis l'hexadécimal est simple dans la plupart des cas en utilisant les fonctions décrites. Le pliage du boîtier est la plus grande différence entre les deux méthodes. Par rapport aux opérations dans binascii, les fonctions base64.b16decode() et base64.b16encode() ne peuvent gérer que les lettres majuscules hexadécimales.

Il est également important de se rappeler que la sortie de la fonction d'encodage est toujours une chaîne d'octets. Vous devrez peut-être inclure des étapes de décodage supplémentaires pour forcer la sortie au format Unicode.

La traduction chinoise de

Exemple

est :

Exemple

Le programme suivant utilise la fonction de décodage pour décoder les nombres hexadécimaux au format ASCII :

# importing base64 module
import base64
 
# input byte string 
inputByteString = b'tutorialspoint python'
 
# encoding input byte byte string into hexadecimal digits
# using b16encode() function of base64 module
hexdigits = base64.b16encode(inputByteString)
 
# printing the resultant hexadecimal digitsof the byte string 
print(hexdigits)
 
# decoding hexadecimal digits in ASCII format using the decode() function
print(hexdigits.decode('ascii'))

Sortie

Lors de l'exécution du programme ci-dessus, la sortie suivante sera générée -

b'7475746F7269616C73706F696E7420707974686F6E'
7475746F7269616C73706F696E7420707974686F6E
Les méthodes

b16decode() et a2b_hex() acceptent les octets ou le texte Unicode comme entrée lors du décodage des nombres hexadécimaux. Cependant, ces chaînes ne peuvent contenir que des chiffres hexadécimaux codés en ASCII.

Conclusion

Dans cet article, nous avons appris à décoder et encoder la représentation hexadécimale d'un nombre à l'aide de Python. Nous avons également appris à utiliser la méthode decode() pour décoder la représentation ASCII d'un nombre hexadécimal.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer