I numeri esadecimali, spesso abbreviati in “numeri esadecimali” o “hex”, sono numeri rappresentati in base 16 in opposizione alla base 10 che usiamo per l’aritmetica quotidiana e il conteggio.
In termini pratici, questo significa che ogni colonna di un numero scritto in esadecimale può rappresentare fino a 16 valori.
Nella programmazione, prefissiamo le costanti esadecimali con 0x
, con alcune eccezioni.
Esempi e spiegazioni
0x1 == 10xF == 150xFF == 2550xFFF == 40950x1000 == 4096
Nel sistema standard in base 10, ogni colonna rappresenta potenze crescenti di 10, mentre in base 16 ogni colonna rappresenta potenze crescenti di 16.
Come visto nell’esempio della tabella qui sopra, con una cifra hex possiamo rappresentare numeri fino a 15 incluso. Aggiungiamo un’altra colonna e possiamo rappresentare numeri fino a 255, 4095 con un’altra colonna, e così via.
Usi dell’esadecimale nella programmazione di basso livello
L’esadecimale ha trovato il suo primo uso nell’informatica come caratteristica di convenienza.
I dati nei nostri computer hanno un’unità di memorizzazione minima comune, il byte. Ogni byte contiene 8 bit, ed è in grado di memorizzare un numero tra 0 e 255 incluso.
L’esadecimale ha il vantaggio di essere conciso e di avere confini ben definiti.
Un singolo byte è sempre rappresentato da due cifre esadecimali da 0x00 a 0xFF, quest’ultimo è il più grande valore per byte di 255.
La brevità e la natura allineata ai byte dei numeri esadecimali li rendono una scelta popolare per gli ingegneri del software che lavorano su code-base di basso livello o software embedded.
Usi dei numeri esadecimali in JavaScript
JavaScript supporta l’uso della notazione esadecimale al posto di qualsiasi numero intero, ma non dei decimali.
Ad esempio, il numero 2514 in esadecimale è 0x9D2, ma non esiste un modo supportato dal linguaggio per rappresentare 25.14 come numero esadecimale.
Utilizzare l’esadecimale nel tuo codice è una scelta personale e stilistica, e non ha effetto sulla logica sottostante che il tuo codice implementa.
Usi dei numeri esadecimali nei CSS
CSS ha usato per molto tempo la notazione esadecimale per rappresentare i valori dei colori. Consideriamo il seguente selettore:
.my-container { background-color: #112233; color: #FFFFFF;}
Il valore di background-color
è in effetti tre byte esadecimali.
Il processore CSS li tratta come tre byte individuali, che rappresentano il Rosso, il Verde e il Blu.
Nel nostro esempio, 11 corrisponde alla componente di colore Rosso, 22 corrisponde alla componente di colore Verde, e 33 alla componente di colore Blu.
Al momento non c’è modo nei CSS3 di definire un colore con una componente alfa usando gli esagoni. La proposta di CSS4 Draft1 include una proposta per permettere un byte extra per specificare i valori alfa.
Per ora, l’uso della funzione standard rgba()
è il modo raccomandato per aggiungere un valore alfa ai vostri colori.