In diesem Artikel erfahren wir, wie man Hexadezimalzahlen mit Python dekodiert und kodiert.
Verwenden Sie das Binascii-Modul
Base64-Modul verwenden
Im Binascii-Modul gibt es mehrere Methoden zum Konvertieren zwischen binären und verschiedenen ASCII-codierten Binärdarstellungen.
Wenn Sie nur eine rohe Folge hexadezimaler Ziffern kodieren oder dekodieren müssen, können Sie das binascii-Modul verwenden.
Unten sind die Algorithmen/Schritte zum Ausführen der erforderlichen Aufgabe aufgeführt. −
Verwenden Sie das Schlüsselwort import, um das Modul binascii zu importieren.
Erstellen Sie eine Variable zum Speichern der Eingabebyte-Zeichenfolge.
Kodieren Sie die Eingabebytezeichenfolge mit der Funktion b2a_hex() des Moduls binascii in eine Hexadezimalzahl.
Drucken Sie die resultierende Hexadezimalzahl der Eingabebytezeichenfolge.
Verwenden Sie die Funktion a2b_hex() des Moduls binascii, um die obige Hexadezimalzahl in eine Bytefolge zu dekodieren.
Das folgende Programm verwendet die Funktionen b2a_hex() und a2b_hex(), um eine Eingabebytezeichenfolge in eine Hexadezimalzahl zu kodieren und sie wieder in eine Bytezeichenfolge zu dekodieren.
# 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))
Beim Ausführen des obigen Programms wird die folgende Ausgabe generiert -
b'7475746f7269616c73706f696e7420707974686f6e' b'tutorialspoint python'
base64 verfügt ebenfalls über eine ähnliche Funktionalität. Es kann auch rohe Hexadezimalzahlen kodieren oder dekodieren.
Unten sind die Algorithmen/Schritte zum Ausführen der erforderlichen Aufgabe aufgeführt. −
Verwenden Sie das Schlüsselwort import, um das Modul base64 zu importieren.
Erstellen Sie eine Variable zum Speichern der Eingabebyte-Zeichenfolge.
Kodieren Sie die Eingabebytezeichenfolge mit der Funktion b16encode() des Moduls base64 in hexadezimale Ziffern (Hexdigits).
Drucken Sie die resultierende Hexzahl der Eingabebytezeichenfolge aus.
Verwenden Sie die Funktion b16decode() des Moduls base64, um die obige Hexadezimalzahl in eine Bytezeichenfolge zu dekodieren und auszudrucken.
Das folgende Programm kodiert eine Eingabe-Byte-Zeichenfolge in eine Hexadezimalzahl und dekodiert sie mithilfe der Funktionen b16encode() und b16decode() wieder in eine Byte-Zeichenfolge -
# 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))
Beim Ausführen des obigen Programms wird die folgende Ausgabe generiert -
b'7475746f7269616c73706f696e7420707974686f6e' b'tutorialspoint python'
Die Konvertierung in und von Hexadezimalzahlen ist mit den beschriebenen Funktionen in den meisten Fällen einfach. Kofferfaltung ist der größte Unterschied zwischen den beiden Methoden. Im Vergleich zu Operationen in binascii können die Funktionen base64.b16decode() und base64.b16encode() nur Großbuchstaben hexadezimale Buchstaben verarbeiten.
Es ist auch wichtig zu bedenken, dass die Ausgabe der Kodierungsfunktion immer eine Bytefolge ist. Möglicherweise müssen Sie zusätzliche Dekodierungsschritte einschließen, um die Ausgabe in Unicode zu erzwingen.
Die chinesische Übersetzung vonDas folgende Programm verwendet die Dekodierfunktion, um Hexadezimalzahlen in das ASCII-Format zu dekodieren:
# 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'))
Beim Ausführen des obigen Programms wird die folgende Ausgabe generiert -
b'7475746F7269616C73706F696E7420707974686F6E' 7475746F7269616C73706F696E7420707974686F6E
b16decode() und a2b_hex() akzeptieren Bytes oder Unicode-Text als Eingabe beim Dekodieren von Hexadezimalzahlen. Diese Zeichenfolgen können jedoch nur hexadezimale Ziffern enthalten, die ASCII-codiert wurden.
In diesem Artikel haben wir gelernt, wie man die hexadezimale Darstellung einer Zahl mit Python dekodiert und kodiert. Wir haben auch gelernt, wie man mit der Methode decode() die ASCII-Darstellung einer Hexadezimalzahl dekodiert.
Das obige ist der detaillierte Inhalt vonDekodierung und Kodierung von Hexadezimalzahlen mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!