Saite zu Hexadezimal in Python

Saite zu Hexadezimal in Python

Hexadezimal hat eine Basis von 16, und wir können eine Zeichenfolge im hexadezimalen Form mit dem Präfix 0x darstellen.

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

  1. Mit der HEX (N) -Methode
  2. Verwenden der methode enCode ()
  3. Unter Verwendung der Methode literal_eval ()

Methode 1: Verwenden der HEX ()

Wir können die Zeichenfolge mit der Hex () -Methode in Hexadezimal konvertieren. Die HEX () -Methode akzeptiert den Parameter in Ganzzahlform, und zuerst müssen wir die Zeichenfolge in eine Ganzzahl konvertieren und dann diesen Wert an die HEX () -Methode übergeben, wie unten gezeigt:

Beispiel: string_to_hex.py

# string_to_hex.py
STR = "245FC"
# Übergeben Sie den STR an den int (), um ihn in Base16 int umzuwandeln
Base16int = int (str, 16)
# Drucken Sie die konvertierte Zeichenfolge auf Base16 Hexadezimal int -Wert
print ("value", base16int)
print ("value", type (base16int))
hex_value = hex (Base16int)
print (hex_value)
# Chickking des Werttyps
print (type (hex_value))

Ausgang:

Wert
0x245fc

Zeile 3: Wir haben eine Zeichenfolge für die Demo erstellt.

Zeile 6: Wir übergeben diese Zeichenfolge mit der Basis 16 an die int () -Methode. Jetzt konvertiert diese int () -Methode die Zeichenfolge in den hexadezimalen Ganzzahlwert.

Zeile 9: Wir drucken den Wert, den wir nach dem Konvertieren der Zeichenfolge in ganzzahlige Hexadezimal erhalten.

Zeile 10: Wir drucken auch den Werttyp, um zu bestätigen, dass sich die Zeichenfolge jetzt in Form einer Ganzzahl befindet.

Zeile 12: Wir wissen. Deshalb müssen wir die Zeichenfolge in eine Ganzzahl umwandeln, um sie in die HEX () -Methode zu übergeben. Wir haben diesen Basis -Wert an die Hex () -Methode übergeben und die Hex_Value -String -Hexadezimal erhalten.

Zeile 13: Wir drucken, den den Hexadezimalwert konvertierte.

Zeile 16: Wir drucken den Typ des konvertierten Hexadezimalwerts, der in der Ausgabe zeigt, dass es sich um einen String -Typ handelt.

Jetzt haben wir die Zeichenfolge in einen hexadezimalen Wert umgewandelt.

Methode 2: Konvertieren Sie die Zeichenfolge mit dem Encodes () in Hexadezimal um.)

Wir können die normale Zeichenfolge auch in eine hexadezimale Zeichenfolge umwandeln, die kein hexadezimaler Charakter hat. Dafür müssen wir die Zeichenfolge mithilfe der Methode EnCodes () in Byte konvertieren, und dann können wir die Zeichenfolge wie unten gezeigt in Hexadezimal konvertieren:

# string_to_hex_utf8.py
# Konvertieren Sie die Zeichenfolge in die Bytes
STR = 'LinuxHint' '.codieren ('utf-8')
# Drucken Sie die konvertierte Zeichenfolge auf Bytes
Druck (str)
# Konvertieren Sie die String -Bytes in die hexadezimale Zeichenfolge
hex_str = str.verhexen()
# Drucken Sie den konvertierten Hexadezimalwerttyp
print (type (hex_str))

Ausgang:

Zeile 4 bis 7: Wir haben eine Zeichenfolge erstellt, die keinen hexadezimalen Charakter hat. Und wandeln Sie diese Saiten mithilfe der methode enCode () in Bytes in Bytes um. Und dann drucken wir diese Bytes, die wir in der Ausgangsleitungsnummer 1 sehen können.

Zeile 10 bis 13: Wir nennen die HEX () -Methode mit dem Punktbetreiber, und jetzt werden die Bytes in den von uns benötigten hexadezimalen Stringwert konvertiert. Um den Typ der Ergebniszeichenfolge zu bestätigen, drucken wir einfach die Zeilennummer 13 und die Ausgabe zeigt, dass sie sich in einem Saiten -Hexadezimal -Typ befindet.

Methode 3. Mit AST.literal_eval () Methode

Wir können die Zeichenfolge auch mit der AST -Bibliotheksmethode literal_eval in eine Ganzzahl konvertieren. Diese Methode konvertiert auch die Zeichenfolge in eine Ganzzahl, um die HEX () -Methode zu verwenden, um die Zeichenfolge in die hexadezimale Zeichenfolge umzuwandeln. Diese Methode akzeptiert jedoch nur 0x Präfixzeichen.

# string_to_hex_utf8.py
von AST import borderal_eval
str = "0xaaa"
# Konvertieren Sie die Zeichenfolge in die Ganzzahl
convert_str = literal_eval (str)
# Drucken Sie den Wert und den Typ des convert_STR aus
print (convert_str)
print ("type", type (convert_str))
# Übergeben Sie die CONVERT_STR an die Hex () -Methode
hex_value = hex (convert_str)
print (hex_value)
# Chickking des Werttyps
print (type (hex_value))

Ausgang:

2730
Typ
0xaaa

Zeile 2 bis 10: Wir importieren die Methode literal_eval () aus der AST -Bibliothek. Dann erstellen wir eine Zeichenfolge mit dem Präfix 0x. Dann haben wir diese Saite an die Methode Literal_eval () übergeben und sie in die Ganzzahl umgewandelt. Um zu bestätigen, dass sich die Ausgabe in ganzzahliger Form befindet, drucken wir sie in Zeile Nummer 9. Wir drucken auch den Typ des Ausgangs, der zeigt, dass es sich um eine Ganzzahl handelt.

Zeile 13 bis 17: Wir wissen. Deshalb müssen wir die Zeichenfolge in eine Ganzzahl umwandeln, um sie in die HEX () -Methode zu übergeben. Wir haben diesen Wert convert_str (Integer) an die Hex () -Methode konvertiert und die hex_value -String -Hexadezimal erhalten. Wir drucken, den den Hexadezimalwert konvertierte. Wir drucken auch den Typ des konvertierten hexadezimalen Wertes, der zeigt, dass es sich um einen hexadezimalen String -Typ handelt.

Fehlerausnahme (TypeError):

Manchmal bekommen wir Fehler, während wir die Zeichenfolge in eine hexadezimale Zeichenfolge konvertieren. Der Grund dafür ist, dass die Hex () -Methode nur den Ganzzahlwert als Parameter akzeptiert.

string_hex = "0xff"
hex_output = hex (string_hex)
print (hex_output)

Ausgang:

1
TypeError: 'Str' Objekt kann nicht als Ganzzahl interpretiert werden

Abschluss:

Wir haben also verschiedene Methoden gesehen, um die Zeichenfolge in eine hexadezimale Kleinbuchstaben -Saite umzuwandeln. Die HEX () -Methode ist aufgrund ihrer einfachen Verwendung sehr beliebt. Aber manchmal möchten wir die Zeichenfolge konvertieren, ohne das Präfix 0x zu verwenden. In diesem Fall können wir die Bytes codes () -Methode 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-Konversion