Eccetto dove diversamente specificato, il contenuto di questo sito è distribuito con Licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Unported.
A06_4 Il sistema esadecimale
Che cos'è il sistema esadecimale?
Esadecimale significa a base 16. Il sistema esadecimale utilizza 16 simboli (cifre) per rappresentare i primi 16 numeri (da 0 a 15) e poi, come tutti i sistemi posizionali, utilizza combinazioni di due o più simboli per rappresentare tutti gli altri numeri interi.
Se gli esseri umani avessero avuto 16 dita, 8 dita per mano, probabilmente oggi useremmo tutti un sistema esadecimale per fare i calcoli. Magari da qualche parte nell'universo c'è una forma di vita intelligente con 16 dita, per esempio con 4 mani di 4 dita ciascuna.
A noi sulla Terra il sistema esadecimale serve per lo stesso motivo per il quale ci serve il sistema binario: a dialogare con i computer. Vedremo più avanti il perché. Prima dobbiamo capire come rappresentare il sistema esadecimale e come fare le conversioni con gli altri sistemi.
Con il sistema binario non abbiamo avuto bisogno di ideare dei simboli perché ne avevamo già dieci del nostro sistema decimale e ce ne servivano solo due. È stato facile decidere di usare 0 e 1, le prime due cifre del sistema decimale, come simboli del sistema binario.
Anche nel sistema esadecimale possiamo sfruttare i simboli che conosciamo già, ma qui abbiamo il problema opposto, i simboli sono troppo pochi, ne abbiamo solo dieci (da 0 a 9) e ce ne servono altri sei per arrivare a sedici: come fare?
Si potrebbero inventare dei simboli completamente nuovi, ma poi sarebbero difficili da ricordare, così si è deciso di usare dei simboli già ben conosciuti e cioè le prime 6 lettere dell'alfabeto, da A a F (di solito si preferisce usare le maiuscole, ma non è una regola rigida).
Bene, abbiamo i nostri 16 simboli, le nostre 16 cifre del sistema esadecimale, eccole qui:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
Quindi, se nel sistema esadecimale dico "sei" intendo il numero decimale 6, e se dico "effe" intendo il numero decimale 15. Ma, a questo punto è bene fare un confronto completo tra i primi 16 numeri nei tre sistemi esadecimale, decimale e binario, e per farlo non c'è niente di meglio che una tabella.
Tavola di conversione tra i sistemi esadecimale - decimale - binario
HEX | DEC | BIN | ||||||
esa- decimale |
decimale | binario | ||||||
semplice | a 4 bit | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
1 | 1 | 1 | 0 | 0 | 0 | 1 | ||
2 | 2 | 10 | 0 | 0 | 1 | 0 | ||
3 | 3 | 11 | 0 | 0 | 1 | 1 | ||
4 | 4 | 100 | 0 | 1 | 0 | 0 | ||
5 | 5 | 101 | 0 | 1 | 0 | 1 | ||
6 | 6 | 110 | 0 | 1 | 1 | 0 | ||
7 | 7 | 111 | 0 | 1 | 1 | 1 | ||
8 | 8 | 1000 | 1 | 0 | 0 | 0 | ||
9 | 9 | 1001 | 1 | 0 | 0 | 1 | ||
A | 10 | 1010 | 1 | 0 | 1 | 0 | ||
B | 11 | 1011 | 1 | 0 | 1 | 1 | ||
C | 12 | 1100 | 1 | 1 | 0 | 0 | ||
D | 13 | 1101 | 1 | 1 | 0 | 1 | ||
E | 14 | 1110 | 1 | 1 | 1 | 0 | ||
F | 15 | 1111 | 1 | 1 | 1 | 1 |
A cosa serve il sistema esadecimale?
Dalla tabella qui sopra risulta evidente che il sistema esadecimale consente di esprimere con un solo simbolo un gruppo di 4 bit del sistema binario perché:
16 = 2⁴.
Questa proprietà dell'esadecimale è molto utile in campo informatico perché le sequenze di bit sono organizzate in pacchetti a larghezza fissa multipla di 4 bit.
La sequenza più comune è 1 byte pari a 8 bit, ma ci sono anche le sequenze a 12, 16, 24, 32 e 64 bit.
Come abbiamo già visto, 1 byte nel sistema binario è di difficile lettura per noi umani. Consideriamo la sequenza:
01101101
Se convertissimo questo numero binario nel sistema decimale lo potremmo ricordare e riconoscere facilmente, ma la conversione dal sistema binario al sistema decimale richiede un calcolo non immediato:
0×2⁷+1×2⁶+1×2⁵+0×2⁴+1×2³+1×2²+0×2¹+1×2⁰ = 64+32+8+4+1 = 109
Invece, per la conversione dal sistema binario all'esadecimale, è sufficiente la memorizzazione della tabella vista sopra. Dividendo il numero binario in gruppi di quattro bit:
0110 1101
il primo gruppo corrisponde all'esadecimale 6
il secondo gruppo corrisponde all'esadecimale D
Quindi la conversione è 01101101 (bin) = 6D (hex)
Esempi pratici di uso del sistema esadecimale sono:
CODICI COLORE
INDIRIZZO MAC