Hex in Byte umwandeln in Python

  1. Initialisieren eines Hexadezimalwerts
  2. Verwenden Sie bytes.fromhex(), um Hex in Byte in Python zu konvertieren
  3. Verwenden Sie das Modul unhexlify, um in Python ein Hex in ein Byte zu konvertieren

Dieses Tutorial stellt vor, wie man in Python hexadezimale Werte in ein Byte-Literal umwandelt.

Hexadezimal- oder Hex-Werte sind eine Darstellung einer Zahl, die aus 16 Symbolen besteht, anstatt der üblichen 10 Symbole bei Dezimalwerten. Die Zahlen von 0 bis 9 und die Zeichen a bis e bilden die 16 Hex-Symbole.

Die hexadezimale Umwandlung für die Zahl 1000 ist beispielsweise 3E8.

Initialisieren eines Hexadezimalwerts

Erzeugen wir einen Hexadezimalwert aus einer Zeichenkette und konvertieren die Phrase A quick brown fox in einen Hexadezimalwert mit der Funktion hexlify(), die eine Funktion im Modul binascii ist.

Um eine Zeichenkette in einen Hex-Wert umzuwandeln, müssten wir die Zeichenkette außerdem in ein Byte umwandeln, um sie in Hex umwandeln zu können.

import binascii
str_val = 'A quick brown fox'.encode('utf-8')
hex_val = binascii.hexlify(str_val).decode('utf-8')

print(hex_val)

Ausgabe:

4120717569636b2062726f776e20666f78

Nachdem wir nun erfolgreich eine Zeichenkette in Hex konvertiert haben, wollen wir fortfahren, wie man ein Hex in ein Byte konvertiert.

Verwenden Sie bytes.fromhex(), um Hex in Byte in Python zu konvertieren

Die Funktion bytes.fromhex() akzeptiert ein einzelnes Hexadezimalwert-Argument und wandelt es in ein Byte-Literal um.

Nehmen Sie den Hex-Wert aus dem vorherigen Ergebnis und verwenden Sie fromhex(), um ihn in ein Byte-Literal zu konvertieren.

hex_val = '4120717569636b2062726f776e20666f78'

print(bytes.fromhex(hex_val))

Ausgabe:

Byte value:  b'A quick brown fox'

Das Ergebnis gibt das Bytes-Literal aus, also den in ein Hex umgewandelten Ausdruck, dem der Buchstabe b vorangestellt ist, um anzugeben, dass der Wert ein Byte-Literal ist.

Verwenden Sie das Modul unhexlify, um in Python ein Hex in ein Byte zu konvertieren

Das binascii Python-Modul enthält effiziente Hilfsfunktionen für Binär- und ASCII-Operationen. unhexlify() ist eine Funktion innerhalb des binascii-Moduls, die einen hexadezimalen Wert in ein Byte-Literal umwandelt.

Lassen Sie uns ein neues Beispiel mit speziellen Nicht-ASCII-Zeichen initialisieren, die dann in einen hexadezimalen Wert umgewandelt werden sollen. Das Beispiel wird die griechische Übersetzung der Phrase a quick brown fox sein.

import binascii
from binascii import unhexlify

str_val = 'Μια γρήγορη καφέ αλεπού'.encode('utf-8') #A quick brown fox in Greek translation
hex_val = binascii.hexlify(str_val).decode('utf-8')

print('String value: ', str_val.decode('utf-8'))
print('Hexadecimal: ', hex_val)
print('Byte value: ', unhexlify(hex_val))

Ausgabe:

String value:  Μια γρήγορη καφέ αλεπού
Hexadecimal:  ce9cceb9ceb120ceb3cf81ceaeceb3cebfcf81ceb720cebaceb1cf86cead20ceb1cebbceb5cf80cebfcf8d
Byte value:  b'\xce\x9c\xce\xb9\xce\xb1 \xce\xb3\xcf\x81\xce\xae\xce\xb3\xce\xbf\xcf\x81\xce\xb7 \xce\xba\xce\xb1\xcf\x86\xce\xad \xce\xb1\xce\xbb\xce\xb5\xcf\x80\xce\xbf\xcf\x8d'

Wir haben nun erfolgreich hexadezimale Werte in Bytes konvertiert.

In diesem Artikel haben wir die Verwendung von fromhex() und binascii.unhexlify() zur Konvertierung von Hexadezimalwerten in Byte-Literale in Python behandelt. fromhex() ist vorzuziehen, wenn Sie keine zusätzlichen Importe in Ihren Quellcode einfügen wollen. Ansonsten liefern beide Funktionen die gleiche Ausgabe.

Verwandter Artikel - Python Bytes

  • So konvertieren Sie Int in Binär in Python
  • Wie man String in Bytes in Python konvertiert
  • Verwandter Artikel - Python Hex

  • Wie man in Python 2 und Python 3 Bytes in Strings konvertiert
  • Byte in Hex in Python umwandeln