HOWTO · Python

String zu Hex in Python

Dieses Tutorial zeigt, wie Sie Zeichenketten in Python in Hexadezimalzahlen konvertieren

Hexadezimalwerte haben eine Basis von 16. In Python wird hexadezimalen Zeichenketten das Präfix 0x vorangestellt.

Mit der Funktion hex() wird eine Dezimalzahl in ihre jeweilige Hexadezimalzahl konvertiert. Zum Beispiel,

a = 102
print(hex(a))

Ausgabe:

0x66

Wir können Float-Werte auch mit der Funktion hex() und der Funktion float() in hexadezimal konvertieren. Der folgende Code implementiert dies.

a = 102.18
print(float.hex(a))

Ausgabe:

0x1.98b851eb851ecp+6

Mit dieser Funktion können wir keinen String konvertieren. Wenn wir also eine Situation haben, in der wir eine hexadezimale Zeichenkette haben und diese in die hexadezimale Zahl konvertieren möchten, können wir dies nicht direkt tun. In solchen Fällen müssen wir diese Zeichenkette mit der Funktion int() in den erforderlichen Dezimalwert konvertieren und dann mit der zuvor beschriebenen Funktion hex() in die Hexadezimalzahl konvertieren.

Der folgende Code zeigt dies.

hex_s = "0xEFA"
a = int(hex_s, 16)
hex_n = hex(a)
print(hex_n)

Ausgabe:

0xefa

Zeichen in der Zeichenkette haben keinen entsprechenden Hexadezimalwert. Wenn wir jedoch eine Zeichenkette mit der Funktion encode() in ein Objekt vom Typ Byte konvertieren, können wir sie mit der Funktion hex() in ihren hexadezimalen Wert konvertieren.

Zum Beispiel,

s = "Sample String".encode("utf-8")
print(s.hex())

Ausgabe:

53616d706c6520537472696e67

Im obigen Code codieren wir die Zeichenkette im Typ utf-8 und konvertieren sie in Bytetypen.