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.