String zu Hexadezimal in Python

String Hexadecimal Python



Hexadezimal hat eine Basis von 16, und wir können einen String im Hexadezimalformat mit dem Präfix 0x darstellen.

Wir können die Zeichenfolge mit den folgenden Methoden in hexadezimal konvertieren:







  1. Verwenden der hex(n)-Methode
  2. Verwenden der Methode encode()
  3. Verwenden der Methode literal_eval()

Methode 1: Verwenden des Hex ()

Wir können den String mit der hex()-Methode in hexadezimal umwandeln. Die Methode hex() akzeptiert den Parameter in ganzzahliger Form, und dafür müssen wir zuerst den String in eine Ganzzahl konvertieren und dann diesen Wert an die Methode hex() übergeben, wie unten gezeigt:



Beispiel: string_to_hex.py

1
2
3
4
5
6
7
8
9
10
elf
12
13
14
fünfzehn
16
17
18
19
zwanzig
einundzwanzig
# string_to_hex.py

P = '245FC'

# Übergeben Sie die str an int(), um sie in base16 int umzuwandeln

base16INT= int(P, 16)

# den konvertierten String in den hexadezimalen int-Wert der Basis16 ausgeben

drucken('Wert',base16INT)

drucken('Wert',Typ(base16INT))

hex_value= verhexen(base16INT)

drucken(hex_value)

# den Typ des Wertes prüfen

drucken(Typ(hex_value))

Ausgabe:

1
2
3
4
5
6
7
Wert148988

Wert<Klasse 'int'>

0x245fc

<Klasse 'str'>

Zeile 3: Wir haben einen String für die Demo erstellt.

Zeile 6: Diesen String übergeben wir an die Methode int() mit der Basis 16. Diese Methode int() wandelt nun den String in den hexadezimalen Integer-Wert um.



Zeile 9: Wir geben den Wert aus, den wir erhalten, nachdem wir den String in eine ganze Zahl hexadezimal konvertiert haben.





Zeile 10: Wir geben auch den Werttyp aus, um zu bestätigen, dass die Zeichenfolge jetzt die Form einer Ganzzahl hat.

Zeile 12: Wir wissen, dass die eingebaute hex(n)-Methode den ganzzahligen Wert akzeptiert und die ganze Zahl in die hexadezimale Zeichenfolge umwandelt. Aus diesem Grund müssen wir den String in eine Ganzzahl konvertieren, um ihn an die hex()-Methode zu übergeben. Wir haben diesen base16INT-Wert an die hex()-Methode übergeben und den hex_value, String hexadezimal, erhalten.



Zeile 13: Wir drucken diesen konvertierten hexadezimalen Wert.

Zeile 16: Wir geben den Typ des konvertierten hexadezimalen Werts aus, der in der Ausgabe zeigt, dass es sich um einen String-Typ handelt.

Nun haben wir den String in einen hexadezimalen Wert umgewandelt.

Methode 2: Konvertieren Sie die Zeichenfolge mithilfe von encode () in hexadezimal

Wir können den normalen String auch in einen hexadezimalen String umwandeln, der keine hexadezimalen Zeichen enthält. Dazu müssen wir den String mit der Methode encode() in Byte umwandeln, und dann können wir den String wie unten gezeigt in hexadezimal umwandeln:

1
2
3
4
5
6
7
8
9
10
elf
12
13
14
fünfzehn
16
17
18
19
zwanzig
einundzwanzig
22
2. 3
24
25
# string_to_hex_utf8.py



# Konvertieren Sie den String in die Bytes

P= 'Linuxhint'.kodieren('utf-8')



# den konvertierten String in Bytes ausgeben

drucken(P)



# Konvertieren Sie die String-Bytes in den hexadezimalen String

hex_str= P.verhexen()



# den konvertierten hexadezimalen Werttyp ausgeben

drucken(Typ(hex_str))

Ausgabe:

1
2
3
B'Linuxhint'

<Klasse 'str'>

Zeile 4 bis 7: Wir haben eine Zeichenfolge erstellt, die keine hexadezimalen Zeichen enthält. Und dann konvertieren Sie diese Zeichenfolgen mit der Methode encode() in Bytes. Und dann drucken wir diese Bytes, die wir in der Ausgabezeile Nummer 1 sehen können.

Zeile 10 bis 13: Wir rufen die Methode hex() mit dem Punktoperator auf, und jetzt werden die Bytes in den von uns benötigten hexadezimalen String-Wert konvertiert. Um den Typ des Ergebnisstrings zu bestätigen, geben wir einfach die Zeilennummer 13 aus und die Ausgabe zeigt, dass es sich um einen hexadezimalen Stringtyp handelt.

Methode 3. Verwenden der Methode ast.literal_eval()

Wir können den String auch mit der ast-Bibliotheksmethode literal_eval in eine ganze Zahl konvertieren. Diese Methode wandelt die Zeichenfolge auch in eine Ganzzahl um, um die hex()-Methode zum Konvertieren der Zeichenfolge in eine hexadezimale Zeichenfolge zu verwenden. Diese Methode akzeptiert jedoch nur 0x-Präfixzeichen.

1
2
3
4
5
6
7
8
9
10
elf
12
13
14
fünfzehn
16
17
18
19
zwanzig
einundzwanzig
22
2. 3
24
25
26
27
28
29
30
31
32
33
# string_to_hex_utf8.py

vonastimportierenliteral_eval

P = '0xAAA'



# den String in die ganze Zahl umwandeln

convert_str=literal_eval(P)



# drucke den Wert und den Typ der convert_str

drucken(convert_str)

drucken('Typ', Typ(convert_str))



# übergeben Sie convert_str an die hex()-Methode

hex_value= verhexen(convert_str)

drucken(hex_value)



# den Typ des Wertes prüfen

drucken(Typ(hex_value))

Ausgabe:

1
2
3
4
5
6
7
2730

Typ <Klasse 'int'>

0xaaa

<Klasse 'str'>

Zeile 2 bis 10: Wir importieren die Methode literal_eval() aus der ast-Bibliothek. Dann erstellen wir einen String mit dem Präfix 0x. Dann haben wir diesen String an die Methode literal_eval() übergeben und ihn in die Ganzzahl umgewandelt. Um zu bestätigen, dass die Ausgabe in ganzzahliger Form vorliegt, geben wir sie in Zeile 9 aus. Wir geben auch den Typ der Ausgabe aus, der anzeigt, dass es sich um eine Ganzzahl handelt.

Zeile 13 bis 17: Wir kennen die eingebaute hex(n)-Methode, die den ganzzahligen Wert akzeptiert und die ganze Zahl in die hexadezimale Zeichenfolge umwandelt. Aus diesem Grund müssen wir den String in eine Ganzzahl konvertieren, um ihn an die hex()-Methode zu übergeben. Wir haben diesen convert_str(integer)-Wert an die hex()-Methode übergeben und den hex_value, String hexadezimal, erhalten. Wir drucken diesen konvertierten hexadezimalen Wert. Wir geben auch den Typ des konvertierten Hexadezimalwerts aus, was zeigt, dass es sich um einen String-Hexadezimaltyp handelt.

Fehlerausnahme (TypeError):

Manchmal treten Fehler beim Konvertieren des Strings in einen hexadezimalen String auf. Der Grund dafür ist, dass die Methode hex() nur den ganzzahligen Wert als Parameter akzeptiert.

1
2
3
4
5
6
7
string_hex= '0xFF'



hex_output= verhexen(string_hex)

drucken(hex_output)

Ausgabe:

1
Typfehler:'str' Objektnicht interpretierbarwieeine ganze Zahl

Abschluss:

Wir haben also verschiedene Methoden gesehen, um die Zeichenfolge in eine hexadezimale Zeichenfolge in Kleinbuchstaben umzuwandeln. Die hex()-Methode ist wegen ihrer einfachen Handhabung sehr beliebt. Aber manchmal möchten wir den String ohne das Präfix 0x konvertieren, also können wir in diesem Fall die Methode bytes encode() verwenden, wie wir bereits im Artikel gesehen haben.

Der Code dieses Artikels ist unter dem folgenden Github-Link verfügbar:

https://github.com/shekharpandey89/string-to-hex-conversion