Stringa a esadecimale in Python

Stringa a esadecimale in Python

Hexadecimal ha una base di 16 e possiamo rappresentare una stringa in formato esadecimale usando il prefisso 0x.

Possiamo convertire la stringa in esadecimale usando i seguenti metodi:

  1. Utilizzando il metodo esadecimale (n)
  2. Utilizzando il metodo ENCODE ()
  3. Utilizzando il metodo Literal_eval ()

Metodo 1: usando l'esagono ()

Possiamo convertire la stringa in esadecimale usando il metodo hex (). Il metodo Hex () accetta il parametro in forma intera e, per prima cosa, dobbiamo convertire la stringa in un numero intero e quindi passare quel valore al metodo esadecimale () come mostrato di seguito:

Esempio: String_to_hex.Py

# String_to_hex.Py
str = "245fc"
# Passa la STR a int () per convertirlo in base16 int
Base16Int = int (STR, 16)
# Stampa la stringa convertita su Base16 Valore esadecimale int
Stampa ("Valore", Base16Int)
stampa ("valore", tipo (base16int))
hex_value = hex (base16int)
Stampa (hex_value)
# Chcking il tipo di valore
stampa (tipo (hex_value))

Produzione:

valore
0x245fc

Riga 3: abbiamo creato una stringa per la demo.

Riga 6: Passiamo quella stringa al metodo int () con la base 16. Ora, questo metodo int () convertirà la stringa nel valore intero esadecimale.

Riga 9: Stampiamo il valore che otteniamo dopo aver convertito la stringa in intero esadecimale.

Riga 10: Stampiamo anche il tipo di valore per confermare che la stringa è ora sotto forma di un numero intero.

Riga 12: Sappiamo che il metodo esagonale (n) integrato accetta il valore intero, convertendo l'intero nella stringa esadecimale. Ecco perché dobbiamo convertire la stringa in un numero intero per trasmetterla nel metodo HEX (). Abbiamo superato quel valore Base16Int al metodo Hex () e abbiamo ottenuto HEX_VALUE, String Exadecimal.

Riga 13: Stampiamo quel valore esadecimale convertito.

Riga 16: Stampiamo il tipo di valore esadecimale convertito, che mostra nell'output è un tipo di stringa.

Quindi, ora abbiamo convertito la stringa in un valore esadecimale.

Metodo 2: convertire la stringa in esadecimale usando ENCODE ()

Possiamo anche convertire la stringa normale in una stringa esadecimale che non ha alcun carattere esadecimale. Per questo, dobbiamo convertire la stringa in byte usando il metodo code (), quindi possiamo convertire la stringa in esadecimale come mostrato di seguito:

# String_to_hex_utf8.Py
# converti la stringa nei byte
str = 'linuxhint'.ENCODE ('UTF-8')
# stampa la stringa convertita in byte
Stampa (STR)
# converti i byte di stringa nella stringa esadecimale
hex_str = str.esadecimale()
# Stampa il tipo di valore esadecimale convertito
stampa (tipo (hex_str))

Produzione:

Riga da 4 a 7: Abbiamo creato una stringa che non ha alcun carattere esadecimale. E quindi convertire quelle stringhe in byte usando il metodo ENCODE (). E poi, stampiamo quei byte, che possiamo vedere nella riga di output numero 1.

Riga da 10 a 13: Chiamiamo il metodo Hex () usando l'operatore DOT e ora i byte vengono convertiti nel valore della stringa esadecimale che abbiamo richiesto. Per confermare il tipo di stringa dei risultati, stampiamo semplicemente la riga numero 13 e l'output mostra che è in un tipo di stringa esadecimale.

Metodo 3. Usando AST.Metodo Literal_eval ()

Possiamo anche convertire la stringa in un numero intero usando il metodo della libreria AST Literal_eval. Questo metodo converte anche la stringa in un numero intero per utilizzare il metodo hex () per convertire la stringa in stringa esadecimale. Ma questo metodo accetta solo i caratteri del prefisso 0x.

# String_to_hex_utf8.Py
da AST import letteeral_eval
str = "0xaaa"
# converti la stringa in numero intero
convert_str = literal_eval (STR)
# Stampa il valore e il tipo di convert_str
Stampa (convert_str)
print ("type", type (convert_str))
# Passa il metodo convert_str nel metodo hex ()
hex_value = hex (convert_str)
Stampa (hex_value)
# Chcking il tipo di valore
stampa (tipo (hex_value))

Produzione:

2730
tipo
0xaaa

Riga da 2 a 10: Importiamo il metodo Literal_eval () dalla libreria AST. Quindi creiamo una stringa con il prefisso 0x. Quindi abbiamo superato quella stringa al metodo letterale_eval () e l'abbiamo convertita in numero intero. Per confermare che l'output è in forma intero, lo stampiamo nella riga numero 9. Stampiamo anche il tipo di output, che mostra che è un numero intero.

Riga 13 a 17: Conosciamo il metodo esagonale (n) integrato che accetta il valore intero, convertendo l'intero nella stringa esadecimale. Ecco perché dobbiamo convertire la stringa in un numero intero per trasmetterla nel metodo HEX (). Abbiamo superato quel valore convert_str (intero) al metodo hex () e abbiamo ottenuto HEX_VALUE, stringa esadecimale. Stampiamo quel valore esadecimale convertito. Stamphiamo anche il tipo di valore esadecimale convertito, che mostra che è un tipo esadecimale stringa.

Eccezione di errore (TypeEerror):

A volte riceveremo errori durante la conversione della stringa in una stringa esadecimale. Il motivo alla base di questo è il metodo hex () accetta solo il valore intero come parametro.

String_hex = "0xff"
hex_output = hex (string_hex)
Stampa (hex_output)

Produzione:

1
L'oggetto "Str" non può essere interpretato come un numero intero

Conclusione:

Quindi, abbiamo visto metodi diversi per convertire la stringa in una stringa minuscolo esadecimale. Il metodo hex () è molto popolare per il suo facile utilizzo. Ma a volte, vogliamo convertire la stringa senza usare il prefisso 0x, quindi in quel caso, possiamo usare il metodo byte code (), come abbiamo già visto nell'articolo.

Il codice di questo articolo è disponibile sul collegamento Github di seguito:

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