Da stringa a esadecimale in Python

Manav Narula 30 marzo 2021
Da stringa a esadecimale in Python

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.

Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Articolo correlato - Python String

Articolo correlato - Python Hex