
La funzione hex() in Python
In Python, la funzione integrata hex() è uno strumento che ti permette di trasformare un numero intero nella rappresentazione esadecimale.
hex(numero)
Dove "numero" è l'intero che desideri convertire.
Il risultato? Una stringa che inizia con "0x" ossia lo stesso numero in esadecimale.
Il prefisso "0x" è usato da Python per indicare che il numero è in formato esadecimale. La rappresentazione esadecimale utilizza 16 cifre per indicare i numeri: i simboli da 0 a 9 e lettere da 'a' a 'f'.
Ecco un esempio pratico.
Prova a digitare hex(10) sulla riga comando di Python.
hex(10)
Il numero 10 in esadecimale è rappresentato dal simbolo "A".
Pertanto, la funzione restituisce la stringa '0xa'
'0xa'
E se provi con un numero negativo, come hex(-10)?
hex(-10)
In questo caso il segno meno appare prima del prefisso "0x":
'-0xa'
Ricorda, però, che la funzione hex() non ti dà un numero esadecimale vero e proprio, ma una stringa.
Quindi, non puoi utilizzarla per compiere dei calcoli matematici.
Immagina di voler sommare due numeri esadecimali.
a=hex(2)
b=hex(3)
Ora, "a" contiene '0x2' e "b" ha '0x3'.
Ma attenzione: se digiti a+b non ottieni la somma.
a+b
Essendo stringhe, il linguaggio Python interpreta il simbolo "+" come operatore di concatenazione, anziché di addizione, e concatena i valori delle variabili '0x2'+'0x3' tra loro.
Il risultato è una stringa composta dall'unione delle due stringhe.
'0x20x3'
Per sommare effettivamente i due numeri, devi prima convertirli in interi tramite la funzione int() indicando la base di provenienza (16) al secondo parametro.
a=int(a,16)
b=int(b,16)
Ora, sommando "a" e "b", otterrai il risultato numerico atteso 2+3=5.
a+b
5
Una volta ottenuto il risultato in formato decimale, puoi trasformarlo nella rappresentazione esadecimale usando la funzione hex().