Decimali, Binari & C
L'Esadecimale
|
Ma lasciamo il pianeta Scorpio e il dr. XvYzz e risaliamo sulla nostra AAA (Astronave Analitica
Algebrica), per passare sul pianeta
HEX, sedicesimo pianeta della stella XVI, dove gli abitanti hanno due mani con otto dita per
ogni mano.
Il
loro equivalente del nostro matematico indù procede nello stesso modo: scava
la prima buca, ci mette sassolini fino a 15, poi svuota la buca e ne mette uno
nella seconda, che ora indica "una volta 16 dita". E così via.
Il suo sistema, basato sul sedici, si chiama esadecimale, per gli amici
abbreviato in hex o HEX (da hexadecimal).
Quindi:
il sistema
esadecimale è un sistema posizionale
basato sul 16. |
La sua tabella sarà questa :
ecc |
quinta
colonna |
quarta
colonna |
terza
colonna |
seconda
colonna |
prima
colonna |
ecc |
qui la cifra
vale per 65536 |
qui la cifra
vale per 4096 |
qui la cifra
vale per 256 |
qui la cifra
vale per 16 |
qui la cifra
vale unità |
ecc |
cifra * 65536 |
cifra * 4096 |
cifra * 256 |
cifra * 16 |
cifra * 1 |
ecc |
cifra * 16^4 |
cifra * 16^3 |
cifra * 16^2 |
cifra * 16^1 |
cifra * 1*16^0 |
Ora il passaggio da una colonna alla successiva va secondo le potenze di
16,
che è la base del sistema esadecimale.
Quando in esadecimale scrivo:
intendo :
Numero hex |
Cifra |
Significato |
Valore |
Valore decimale |
125 |
|
|
|
|
|
5 |
= 5 volte la prima colonna |
= 5 dita |
= 5 * 1 = 5 |
|
2 |
= 2 volte la seconda
colonna |
= 2 volte le 16 dita |
= 2 * 16 = 32 |
|
1 |
= 1 volta la terza colonna |
= 1 volta 16 volte le 16 dita |
= 1 * 16 * 16 = 256 |
|
|
|
|
5 + 32 + 256 = 293 |
che posso anche esprimere come:
Se volete, potete esercitarvi a scrivere numeri esadecimali, ma prima vi
occorre qualcos'altro.
Il nostro matematico del pianeta HEX usa
16 cifre e, per i buoni
rapporti intergalattici, sceglie di usare le
nostre cifre arabo-indiane.
Ma c'è un problema: queste cifre sono solo 10 (da 0 a 9). E
le altre 6 ?
Beh, il nostro è un tipo ingegnoso e per le sei che mancano usa le prime sei
lettere dell' alfabeto, da A a F. (abbiamo visto all' inizio che usare lettere
come numeri non è una cosa campata in aria, ma di una pratica esistente da
millenni. Quindi, niente di strano).
Dunque, i numeri esadecimali saranno scritti con un miscuglio di simbolo numerici e
letterali :
Decimale |
Binario |
Ottale |
Esadecimale |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
2 |
10 |
2 |
2 |
3 |
11 |
3 |
3 |
4 |
100 |
4 |
4 |
5 |
101 |
5 |
5 |
6 |
110 |
6 |
6 |
7 |
111 |
7 |
7 |
8 |
1000 |
10 |
8 |
9 |
1001 |
11 |
9 |
10 |
1010 |
11 |
A |
11 |
1011 |
13 |
B |
12 |
1100 |
14 |
C |
13 |
1101 |
15 |
D |
14 |
1110 |
16 |
E |
15 |
1111 |
17 |
F |
16 |
10000 |
20 |
10 |
17 |
10001 |
21 |
11 |
Se facciamo mente locale alle buche e ai sassolini, la prima buca è piena di
15 sassolini, numero rappresentato dalla cifra F.
Ora conto uno in più : svuoto
la prima buca e aggiungo un sassolino alla seconda buca, che vuol dire
"contate una volta le sedici dita"; e questo lo rappresento con 10, un
sassolino nella seconda colonna, zero sassolini nella prima.
Avanzando il conteggio, quando ho quindici sassolini nella prima e ne devo
aggiungere un' altro, svuoto la buca, aggiungo in sassolino nella seconda e da
1F passo a 20: due volte 16 dita, più zero dita. Avendo un elevato numero di cifre, il sistema esadecimale da
origine a scritture compatte.
Ad esempio 2010 decimale diventa 7DA e
1211789 diventa 127D8D.
Il sistema esadecimale è
- un sistema di numerazione: cifre rappresentano numero secondo certe
regole
- è un sistema di numerazione posizionale: le cifre hanno valore
diverso a seconda della posizione nel numero
- è basato sul sedici (ha base 16), ovvero la radice è
esadecimale:
tra colonna e colonna la base della potenza è 16.
Possiamo prendere un numero esadecimale, ad esempio AA e dire che:
che, convertito in decimale:
AAbase16 = (A * 161) +
(A * 160) = (10 * 16) + (10 * 1) = 170base10 |
Ora una tabella per il numero 10101010base16:
colonna |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
esponente |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
moltiplicatore |
167 |
166 |
165 |
164 |
163 |
162 |
161 |
160 |
cifra del numero |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
valore |
1*167 |
0*166 |
1*165 |
0*164 |
1*163 |
0*16 |
1*161 |
0*160 |
Dato che:
Colonna |
Posizione |
Valore |
Moltiplicatore cifra |
Potenza |
8 |
7 |
Gruppi di 268435456 |
268435456 |
167 |
7 |
6 |
Gruppi di 16777216 |
16777216 |
166 |
6 |
5 |
Gruppi di 1048576 |
1048576 |
165 |
5 |
4 |
Gruppi di 65536 |
65536 |
164 |
4 |
3 |
Gruppi di 4096 |
4096 |
163 |
3 |
2 |
Gruppi di 156 |
156 |
162 |
2 |
1 |
Gruppi di 16 |
16 |
161 |
1 |
0 |
Unità |
1 |
160 |
Nella tabella qui sopra osserviamo che non ha più senso, in esadecimale, parlare
di decine o centinaia: decine, centinaia, migliaia, ecc. fanno riferimento a
potenze di 10. Qui abbiamo a che fare con potenze di 16. Solo sul numero convertito a decimale possiamo tornare a parlare di decine, ecc.
Chiaro ? Se non lo fosse, riprendete dall' inizio con più calma...
Una tabellina di somme con le cifre esadecimali:
base16 - Somma |
+ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
2 |
0 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
3 |
0 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
4 |
0 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
5 |
0 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
6 |
0 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
7 |
0 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
8 |
0 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
9 |
0 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
A |
0 |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
B |
0 |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
C |
0 |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
D |
0 |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
1C |
E |
0 |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
1C |
1D |
F |
0 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
1C |
1D |
1E |
e di prodotti:
base16
- Moltiplicazione |
+ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
2 |
0 |
2 |
4 |
6 |
8 |
A |
C |
E |
10 |
12 |
14 |
16 |
18 |
1A |
1C |
1E |
3 |
0 |
3 |
6 |
9 |
C |
F |
12 |
15 |
18 |
1B |
1E |
21 |
24 |
27 |
2A |
2D |
4 |
0 |
4 |
8 |
C |
10 |
14 |
18 |
1C |
20 |
24 |
28 |
2C |
30 |
34 |
38 |
3C |
5 |
0 |
5 |
A |
F |
14 |
19 |
1E |
23 |
28 |
2D |
32 |
37 |
3C |
41 |
46 |
4B |
6 |
0 |
6 |
C |
12 |
18 |
1E |
24 |
2A |
30 |
36 |
3C |
42 |
48 |
4E |
54 |
5A |
7 |
0 |
7 |
E |
15 |
1C |
23 |
2A |
31 |
38 |
3F |
46 |
4D |
54 |
5B |
62 |
69 |
8 |
0 |
8 |
10 |
18 |
20 |
28 |
30 |
38 |
40 |
48 |
50 |
58 |
60 |
68 |
70 |
78 |
9 |
0 |
9 |
12 |
1B |
24 |
2D |
36 |
3F |
48 |
51 |
5A |
63 |
6C |
75 |
7E |
87 |
A |
0 |
A |
14 |
1E |
28 |
32 |
3C |
46 |
50 |
5A |
64 |
6E |
78 |
82 |
8C |
96 |
B |
0 |
B |
16 |
21 |
2C |
37 |
42 |
4D |
58 |
63 |
6E |
79 |
84 |
8F |
9A |
A5 |
C |
0 |
C |
18 |
24 |
30 |
3C |
48 |
54 |
60 |
6C |
78 |
84 |
90 |
9C |
A8 |
B4 |
D |
0 |
D |
1A |
27 |
34 |
41 |
4E |
5B |
68 |
75 |
82 |
8F |
9C |
A9 |
B6 |
C3 |
E |
0 |
E |
1C |
2A |
38 |
46 |
54 |
62 |
70 |
7E |
8C |
9A |
A8 |
B6 |
C4 |
D2 |
F |
0 |
F |
1E |
2D |
3C |
4B |
5A |
69 |
78 |
87 |
96 |
A5 |
B4 |
C3 |
D2 |
E1 |
Ricordare che stiamo contando in hex
e
utilizziamo la numerazione esadecimale !!
Ed è semplice, se è stato compreso quanti finora detto, che:
Abase16 + Abase16 =
14base16 |
14base16 = 1 × 161
+ 4 × 160 = 16 + 4 = 20base 10
e:
9base16
* 9base16 =
51base16 |
51base16
= 5 × 161
+ 1 × 160 = 80 + 1 = 81base 10
Ovviamente posso convertire l' esadecimale in
decimale, ottale, binario e viceversa.
Anche qui, una volta compreso il principio, però non esiste
alcuna necessità di calcolare a mano le conversioni : Calcolatrice fa questo
per noi.
L' importante è aver compreso il principio e saperlo applicare dove e quando
serve. Comunque, qualche esempio non guasta, ma lo vediamo più avanti.
Piuttosto che fare conversioni, affrontiamo un altro passaggio importante.
|