Dans cet article, nous apprendrons comment décoder et encoder des nombres hexadécimaux à l'aide de Python.
Utilisez le module binascii
Utilisez le module base64
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 lemodule binascii.
Vous trouverez ci-dessous les algorithmes/étapes pour effectuer la tâche requise. −
Utilisez le mot-clé import pour importer le modulebinascii.
Créez une variable pour stocker lachaîne d'octets d'entrée.
Encodez la chaîne d'octets d'entrée en un nombre hexadécimal à l'aide de la fonctionb2a_hex()du modulebinascii.
Imprimez le nombre hexadécimal résultant de la chaîne d'octets d'entrée.
Utilisez la fonctiona2b_hex()du modulebinasciipour décoder le nombre hexadécimal ci-dessus en une chaîne d'octets.
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))
Lors de l'exécution du programme ci-dessus, la sortie suivante sera générée -
b'7475746f7269616c73706f696e7420707974686f6e' b'tutorialspoint python'
base64a également des fonctionnalités similaires. Il peut également encoder ou décoder des nombres hexadécimaux bruts.
Vous trouverez ci-dessous les algorithmes/étapes pour effectuer la tâche requise. −
Utilisez le mot-clé import pour importer le modulebase64.
Créez une variable pour stocker lachaîne d'octets d'entrée.
Utilisez la fonctionb16encode()du modulebase64pour 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 fonctionb16decode()du modulebase64pour décoder le nombre hexadécimal ci-dessus en une chaîne d'octets et l'imprimer.
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))
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îtierest la plus grande différence entre les deux méthodes. Par rapport aux opérations dans binascii, les fonctionsbase64.b16decode()etbase64.b16encode()ne peuvent gérer que les lettresmajusculeshexadé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 deLe 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'))
Lors de l'exécution du programme ci-dessus, la sortie suivante sera générée -
b'7475746F7269616C73706F696E7420707974686F6E' 7475746F7269616C73706F696E7420707974686F6E
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.
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!