I sistemi digitali: i numeri esadecimali ed i passaggi di base

I sistemi digitali: i numeri esadecimali ed i passaggi di base
5
Trasformazione di un numero binario in esadecimale e viceversa
Per identificare quale dato è presente sul bus viene spesso usata la numerazione esadecimale, cioè
in base 16. In base 16 per rappresentare i numeri si usano 16 SIMBOLI: 0 1 2 3 4 5 6 7 8 9 A B C D E
F che corrispondono ai numeri decimali da 0 a 15. La rappresentazione esadecimale è utile poiché se
il numero è composto da molti bit è difficile ricordarsi la corretta successione di 1 e di 0 e d'altra parte
non conviene farsi tutti i conti per ritrovare il corrispondente valore decimale del dato,
4
Quante cifre binarie sono necessarie per poter contare fino a 15? Risposta: 4 cifre perché 2 = 16 è il
primo numero che ha bisogno di 5 cifre in quanto in binario 16 si scrive 1 0 0 0 0
Ad ogni cifra esadecimale corrisponde quindi un numero binario di 4 bit.
La corrispondenza tra la numerazione binaria, quella esadecimale e quella decimale è quindi la
seguente:
Binario
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Esadecimale
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Decimale
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Un dato binario ad 8 bit prende il nome di BYTE: il byte è quindi l'insieme di 8 bit.
Poiché ogni cifra esadecimale corrisponde a 4 bit Un dato binario ad 8 bit (un byte) è quindi
rappresentabile con 2 cifre esadecimali.
Per facilitare il passaggio dalla rappresentazione binaria a quella esadecimale si divide il byte in due
meta' ognuna da quattro bit: un insieme di quattro bit prende il nome di NIBBLE.
Un byte è quindi l'insieme di due nibble. Il nibble che corrisponde ai bit 0123 è il nibble meno
significativo (contiene infatti i bit di peso minore); il nibble che corrisponde ai bit 5467 è il nibble più
significativo (contiene infatti i bit di peso maggiore). Ad ogni nibble corrisponde una cifra esadecimale.
Bit 7
Bit 6
Bit 5
Bit 4
Nibble più significativo
Bit 3
Bit 2
Bit 1
Bit 0
Nibble meno significativo
Trasforma in esadecimale il seguente numero binario o consultando la tabella precedente o ricavando
i valori decimali corrispondenti ad ogni nibble. Notiamo che in questo calcolo i pesi per ogni nibble
sono identici cioè il peso del bit 4 (bit 0 del secondo nibble) è 1 e non 16
8
4
2
1
8
4
2
1
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
0
1
1
0
1
1
0
0
Trasforma in binario il seguente numero esadecimale di due cifre:
8
4
2
1
8
4
2
1
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
A
7
5
I sistemi digitali: i numeri esadecimali ed i passaggi di base
6
Trasformazione di un numero esadecimale in decimale.
Si può passare attraverso la numerazione binaria: una volta trovato l'equivalente binario del numero
esadecimale è infatti facile passare dal binario al decimale. La via più corretta è però quella di
attribuire ad ogni singola cifra della numerazione esadecimale il suo peso e di sommare tutti i risultati
dei prodotti delle cifre del numero per il corrispondente peso.
Attribuiamo ad ogni cifra esadecimale il suo peso prendendo in considerazione numeri di 4 cifre.
Pesi
163 =4096
Cifra 3
162= 256
Cifra 2
161=16
Cifra1
160= 1
Cifra 0
Pertanto il numero esadecimale 1A3B trasformato in decimale è:
163 =4096
Cifra 3
1
1 • 4096
162= 256
Cifra 2
A
10 • 256
161=16
Cifra1
3
3 • 16
160= 1
Cifra 0
B
11•1
Contributi di
ogni cifra
(1A3B)16 = 1 • 1024 + 10 • 256 + 3 • 16 + 11•1 = ( 6880)10
Trasforma in decimale i numeri esadecimali 4A e CF
161=16
Cifra1
4
160= 1
Cifra 0
A
(4A)16 = ………………………… =
(…………..)10
161=16
Cifra1
4
160= 1
Cifra 0
A
(4A)16 = ………………………… =
(…………..)10
Trasformazione di un numero decimale in binario (base 2)
Il metodo più corretto è quello di dividere il
numero decimale per 2: il resto della divisione
corrisponde al bit LSB. Trovato il bit 0 si passa
Bit 0
al bit successivo (se esiste). Si prende il
quoziente della divisione precedente e lo si
divide ancora per 2 etc Il resto di questa
divisione è il bit successivo e così via fino a che
Bit 1
come quoziente rimane 1 e quindi non si può
andare ulteriormente avanti nelle divisioni per 2.
Questo 1 è il MSB del numero
Convertendo in binario il numero (4)10 Abbiamo:
Primo resto = Bit 0 = 0
Bit 3
Secondo resto = Bit 1 = 0
(4)2 =
1
Quoziente = Bit 3 = 1
Bit 3
Bit 2
0
Bit 0
0
Si può però anche scrivere nelle caselle il peso di ogni bit e scoprire se il bit è necessario o meno per
arrivare al totale. Se è necessario si mette ad 1 il bit corrispondente, altrimenti si mette a 0. Questo
metodo è di facile applicazione in base 2 in quanto le cifre valgono o zero o uno e quindi il peso o ci
vuole o non ci vuole.
Da decimale ad altre basi
In altre basi il peso va moltiplicato per la cifra e quindi il
Cifra 0
calcolo "ad occhio" è più complicato. Risulta allora più
facile il metodo delle divisioni successive.
14 →E
Convertiamo un numero da decimale a base 16.
Dividiamo per 16 conservando i resti che sono la cifra
Cifra 1
0, la cifra 1 etc del numero in esadecimale fermandoci
15 →F
quando il quoziente è minore di 16 e ricordandoci che
se il resto o il quoziente finale è 10 dobbiamo scrivere
A, se è 11 dobbiamo scrivere B etc. Convertiamo in esadecimale il numero decimale 254 = (FE)16
6