La numerazione esadecimale
Il sistema di numerazione esadecimale ha ampio utilizzo in informatica E’ un sistema di numerazione posizionale La base è 16 Il sistema utilizza dunque sedici cifre {0, 1, 2, 3, 4, 5, 6, 7,8,9} per le prime dieci cifre Per le altre sei cifre si usano le lettere dell’alfabeto { A=10, B=11, C=12, D=13, E=14, F=15}
Per convertire un numero in base 16 in un numero in base 10 si utilizza sempre il metodo dei pesi: ogni cifra ha un peso che si ottiene da una potenza che ha per base 16 e per esponente la posizione della cifra nel numero  La posizione si calcola contando dall’ultima cifra di destra che ha posizione 0 e procedendo verso sinistra 
Consideriamo, ad esempio, il numero
◦45C7(16)
Il 4 si trova in posizione 3, il 5 si trova in posizione 2, il C cioè 12 si trova in posizione 1, il 7 si trova in posizione 0 Il 4 va moltiplicato per un peso pari a 163 Il 5 va moltiplicato per un peso pari a 162
Il 12 va moltiplicato per un peso pari a 161 Il 7 va moltiplicato per un peso pari a 160 Abbiamo dunque che 45C7(16) = = 4 X 163 + 5 X 162 + 3 X 161 + 7 X 160 = 4 X 4096 + 5 X 256 + 3 X 16 + 7 = = 16384 + 1280 + 48 + 7 = = 17719(10)
Passaggio da base 10 a base 16 Il metodo delle divisioni successive utilizzato per passare da base 10 a base 2 conserva la sua validitĂ , soltanto che stavolta, essendo la base 16 e non 2 , bisogna dividere per 16 anzichĂŠ per 2 ď‚— Supponiamo di voler convertire 1248(10) in base 16 ď‚—
Se dividiamo 1248 per 16 otteniamo quoziente 78 e resto 0 Dividendo 78 per 16 otteniamo quoziente pari a 4 con resto 14 cioè la cifra E Dividendo 4 per 16 otteniamo quoziente 0 e resto 4
1248
0 78 E 4 4 0
Quindi
1248(10)
= 4E0(16)
Da esadecimale a binario e viceversa Vediamo ora come si passa dal binario all’esadecimale Si considera il numero binario e. partendo da destra si divide in gruppi di 4 cifre binarie. Se dopo l'operazione avanzano una o due cifre si aggiungono tanti zeri quanti bastano a coprire un gruppo di quattro bit, Ogni gruppo va poi convertito nella corrispondente cifra esadecimale.
Esempio ď‚—
11010011012 = = 001 1|0100|1101= = 34D16
Cerchiamo di spiegare perché funziona Sviluppiamo anzitutto il numero binario 11010011012 = 1 X 29 + 1 X 28 + 0 X 27 + 1 X 26 + 0 X 2 5 + 0 X 2 4 + 1 X 2 3 + + 1 X 2 2 + 0 X 21 + 1 X 20 = vogliamo ora trasformare le potenze per mettere in evidenza potenze di 16 Ad esempio 29 = 21 X (24)2 =2X162 28 = 20 X (24)2 =1X162 27 = 23 X 24 = 23 X 16
26 25 24 23 22 21 20
= 22 = 21 = 20 = 23 = 22 = 21 = 20
X 24 = 22 X 16 X 24 = 21 X 16 X 24 = 1 X 16 X 20 = 23 X 160 X 20 = 22 X 160 X 20 = 21 X 160 X 20 = 20 X 1 = 20 X 160
quindi 11010011012 = 1 X 29 + 1 X 28 + 0 X 27 + 1 X 26 + 0 X 2 5 + 0 X 2 4 + 1 X 2 3 + + 1 X 2 2 + 0 X 21 + 1 X 20 = = 1X21 X 162 + 1 X 20 X 162 + 0 X 23 X 161 + 1 X 22 X 161 + 0 X 21 X 161 + 0 X 20 X 161 + 1 X 23 X 160 + + 1 X 22 X 160 + 0 X 21 X 160 + 1 X 20 X 160
Ora mettiamo le potenze di 8 in evidenza 11010011012 = (1X21 + 1 X 20 ) X 162 + (0 X 23 + 1 X 22 + 0 X 21 + 0 X 20 )X 161 + (1 X 23 + 1 X 22 + 0 X 21 + +1 X 20 )X 160 = 3 X 162 +4X 161 + 13 X 160 =34D16
Ma questo è proprio il risultato che avevamo ottenuto direttamente
Dunque se partendo da destra organizziamo i bit in gruppi di quattro possiamo mettere in evidenza delle potenze di 24 cioè di 16 mentre quello che rimane fra parentesi dopo aver messo in evidenza queste potenze di 16 è proprio il valore che avrebbe il gruppo di quattro bit se fosse isolato e non all’interno del numero originale
Ora sappiamo a che servono i numeri in base sedici Rendono molto piĂš sintetica la rappresentazione di stringhe di bit molto lunghe ď‚— 111000101010101010111101111101012 = E2AABDF516 ď‚—
Conversione da esadecimale a binario ď‚—
Per quello che abbiamo appena mostrato appare chiaro che la conversione da esadecimale a binario deve avvenire in maniera diametralmente opposta: ogni cifra del numero in base sedici va convertita in un gruppo di quattro bit
esempio 3CF4 16 = 0011 1100 1111 0100 2 4ACB 16 = 0100 1010 1100 1011 2
Aritmetica in base sedici
Si ribadisce ancora una volta che il cambiamento di base non modifica le leggi della matematica per cui, ad esempio, l’algoritmo per l’esecuzione della somma è identico a quello visto in base 10 ed in base 2
Vediamo ad esempio la somma ď‚—
Supponiamo di dover eseguire la seguente somma fra numeri ottali
425616 + 373416
ď‚—
Se sommiamo le due cifre meno significative otteniamo
ď‚—6
+ 4 = 10 = A
Dunque
425616 + 373416 = A
ď‚—
Se sommiamo le due cifre successive otteniamo
ď‚—5
+3=8
Dunque
42568 + 37348 = 8A
ď‚—
Se sommiamo le due cifre successive otteniamo
ď‚—2
+7=9
Dunque
42568 + 37348 = 98A
ď‚—
Se sommiamo le due cifre successive otteniamo
ď‚—4
+3=7
Dunque
425616 + 373416 = 798A16 8