Modulo 1 fondamenti teorici la rappresentazione delle informazioni in un computer (quinta parte)

Page 1

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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.