HOWTO · Python

Da stringa a esadecimale in Python

Questo tutorial mostra come convertire una stringa in esadecimale in Python

In questa pagina

I valori esadecimali hanno una base di 16. In Python, le stringhe esadecimali hanno il prefisso 0x.

La funzione hex() viene utilizzata per convertire un intero decimale nel rispettivo numero esadecimale. Per esempio,

a = 102
print(hex(a))

Produzione:

0x66

Possiamo anche convertire i valori float in esadecimali usando la funzione hex() con la funzione float(). Il codice seguente implementa questo.

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

Produzione:

0x1.98b851eb851ecp+6

Non è possibile convertire una stringa utilizzando questa funzione. Quindi, se abbiamo una situazione in cui abbiamo una stringa esadecimale e vogliamo convertirla nel numero esadecimale, non possiamo farlo direttamente. In questi casi, dobbiamo convertire questa stringa nel valore decimale richiesto usando la funzione int() e poi convertirla nel numero esadecimale usando la funzione hex() discussa in precedenza.

Il codice seguente lo mostra.

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

Produzione:

0xEFA

I caratteri nella stringa non hanno alcun valore esadecimale corrispondente. Tuttavia, se convertiamo una stringa in un oggetto di tipo byte, usando la funzione encode(), possiamo convertirla nel suo valore esadecimale usando la funzione hex().

Per esempio,

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

Produzione:

53616d706c6520537472696e67

Nel codice sopra, codifichiamo la stringa nel tipo utf-8 e la convertiamo in tipi di byte.