Decimali, Binari & C
L' ottale
|
Sistemi non Decimali :
l'ottale
Correntemente noi utilizziamo una matematica basata sul 10 e rappresentata dalle 10
cifre arabo-indiane: abbiamo dieci dita su cui contare.
Immaginiamo ora che il nostro matematico, invece che un hindu, fosse
un Na'vi
di Pandora, il satellite del pianeta Poliphemus nel sistema di Alpha Centauri.
Le sue mani hanno 4 dita ognuna e quindi il suo limite di conteggio è otto e
non dieci.
|
|
Davanti al suo abaco a buche, inizia a mettere i sassolini: uno, due, tre, ecc e,
arrivato a sette, fa lo stesso ragionamento che fa il matematico indiano con il
nove. Arrivato alle otto dita delle mani, svuota la prima buca e mette un
sassolino nella seconda a indicare "una volta le dita delle mani"(che
sono 8).
Con sette sassolini nella seconda e sette nella prima,
svuota le due buche e mette un sassolino nella terza, a indicare 8 volte le otto
dita delle mani; e così via.
Il suo sistema basato sull' otto e non sul dieci, utilizza otto
cifre (sette per le quantità e lo zero per la buca vuota).
Ha ideato il sistema ottale, ovvero un sistema di conteggio analogo a quello decimale, con le stesse
regole, ma basato sull' otto invece che sul dieci.
Il sistema ottale
è un sistema posizionale basato sull' 8.
|
Così, aggiorniamo la tabella per l'
ottale:
ecc |
quarta
colonna |
terza
colonna |
seconda
colonna |
prima
colonna |
ecc. |
qui la cifra
vale per 512 |
qui la cifra
vale per 64 |
qui la cifra
vale per 8 |
qui la cifra
vale unità |
ecc |
cifra * 512 |
cifra * 64 |
cifra * 8 |
cifra * 1 |
ecc |
cifra * 83 |
cifra * 82 |
cifra * 81 |
cifra * 1*80 |
dato che il passaggio da colonna a colonna va per potenze di 8 ( 1, 8, 64,
512, 4096, ecc).
Quindi, supponendo che per comodità il matematico Na'vi utilizzi le cifre
arabo-indiane, quando scrive :
125
intende :
Numero ottale |
Cifra |
Significato |
Valore |
Valore decimale |
|
125 |
|
|
|
|
|
|
5 |
= 5 volte la prima colonna |
= 5 dita |
= 5 * 1 |
|
|
2 |
= 2 volte la seconda
colonna |
= 2 volte le 8 dita |
= 2 * 8 |
|
|
1 |
= 1 volta la terza colonna |
= 1 volta 8 volte le 8 dita |
= 1 * 64 |
|
|
|
|
|
1 + 8 + 64 = 85 |
|
che posso anche esprimere come:
125 = (1 * 64) + ( 2 * 8) + (5 * 1) = ( 1 * 82)
+ ( 2 * 81) + (5 * 80)
o anche, ricordando cosa abbiamo detto delle radici
125 base8 = 1 × 82 + 2 × 81
+ 5 × 80 = 64 + 16 + 5 = 85base 10
Se volete, potete esercitarvi a scrivere altri numeri ottali. Qui non
proponiamo altri esercizi, che ognuno potrà crearsi da sè, se ha capito di
cosa si sta parlando; perchè proprio questo e non la meccanicità del sistema
è quello che interessa.
Evidentemente non
sarà possibile scrivere in ottale 8 o 129 o 938 in quanto
nel sistema ottale solo le
cifre dall' 1 al 7 e lo zero sono possibili.
La tabella
seguente riporta alcuni esempi :
Decimale |
Ottale |
Cifre romane |
0 |
0 |
non usato |
1 |
1 |
I |
2 |
2 |
II |
3 |
3 |
III |
4 |
4 |
IV |
5 |
5 |
V |
6 |
6 |
VI |
7 |
7 |
VII |
8 |
10 |
VII |
9 |
11 |
IX |
10 |
11 |
X |
11 |
13 |
XI |
12 |
14 |
XII |
13 |
15 |
XIII |
14 |
16 |
XIV |
15 |
17 |
XV |
16 |
20 |
XVI |
17 |
21 |
XVII |
Ancora ripetizioni per chiarire con sicurezza: dopo il 7 nella tabella viene
il 10.
Nella prima colonna 7 sassolini; se devo aggiungerne 1 raggiungo il limite, che
è otto. Quindi svuoto la buca (0) e metto un sassolino nella buca successiva
(1) per indicare che ho in conto una volta otto dita + nessun dito.
Il numero successivo sarà 11: 1 volta otto dita + 1 dito e così via.
A 17 e dovendo sommare 1, avrò 2 sassolini nella seconda buca (contate 2 volte
le 8 dita delle mani) + 0 dita, quindi 20. E così via.
|
Per vedere all' opera un sistema ottale non è necessario andare su Pandora,
ma basta osservare come alcuni dei primi calcolatori, ad esempio i famosi PDP di
Digital erano
basati proprio su questo sistema.
Anche attualmente l'ottale è utilizzato a volte nei computer invece
dell'esadecimale poiché ha
il vantaggio di non richiedere simboli extra oltre alle cifre indiane-arabe.
Ne è prevista l' utilizzazione nei vari linguaggi di programmazione
(Assembly, C, Perl, PostScript, ecc). |
Forti di quanto finora detto, possiamo ricapitolare e presentare un modo per
interpretare gli ottali che ci servirà per proseguire.
Il sistema ottale è
- 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 sull' otto (ha base 8), ovvero la radice è ottale:
tra colonna e colonna la base della potenza è 8.
Possiamo prendere un numero, ad esempio 12345670 e dire che:
12345670base8
che è identico a scrivere:
12345670 = (1 * 87) + (2 * 86)
+ (3 * 85) + (4 * 84) + (5 * 83)
+ (6 * 82) + (7 * 81) + (0 * 80 )
In una tabella:
colonna |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
esponente |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
moltiplicatore |
87 |
86 |
85 |
84 |
83 |
82 |
81 |
80 |
cifra del numero |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0 |
valore |
1*87 |
2*86 |
3*85 |
4*84 |
5*83 |
6*82 |
7*81 |
0*80 |
Dato che:
Colonna |
Posizione |
Valore |
Moltiplicatore cifra |
Potenza |
8 |
7 |
Gruppi di 2097152 |
2097152 |
87 |
7 |
6 |
Gruppi di 262144 |
262144 |
86 |
6 |
5 |
Gruppi di 32768 |
32768 |
85 |
5 |
4 |
Gruppi di 4096 |
4096 |
84 |
4 |
3 |
Gruppi di 512 |
512 |
83 |
3 |
2 |
Gruppi di 64 |
64 |
82 |
2 |
1 |
Gruppi di 8 |
8 |
81 |
1 |
0 |
UNITA' |
1 |
80 |
Nella tabella qui sopra osserviamo che non ha più senso, in ottale, parlare
di decine o centinaia: decine, centinaia, migliaia, ecc. fanno riferimento a
potenze di 10. Qui abbiamo a che fare con potenze di 8. Solo sul numero
covertito da ottale a decimale possiamo tornare a parlare di decine, ecc.
Chiaro ? Se non lo fosse, riprendete dall' inizio con più calma...
Una tabella di somme con le cifre ottali:
base 8
- Somma |
+ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
2 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
3 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
4 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
5 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
6 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
7 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
e dei prodotti:
base 8
- Moltiplicazione |
x |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
2 |
0 |
2 |
4 |
6 |
10 |
12 |
14 |
16 |
3 |
0 |
3 |
6 |
11 |
14 |
17 |
22 |
25 |
4 |
0 |
4 |
10 |
14 |
20 |
24 |
30 |
34 |
5 |
0 |
5 |
12 |
17 |
24 |
31 |
36 |
43 |
6 |
0 |
6 |
14 |
22 |
30 |
36 |
44 |
52 |
7 |
0 |
7 |
16 |
25 |
34 |
43 |
52 |
61 |
"Ohibò !!! 7 +7 = 16 ?? e 7 * 7 = 61 ??? Ma quando mai ..."
E invece è così, gente ! Perchè stiamo contando in ottale e
utilizziamo la numerazione ottale !!
Ed è semplice, se è stato compreso quanti finora detto, che:
7base8+ 7base8 = 16base8
16 base8 = 1 × 81
+ 6 × 80 = 8 + 6 = 14base 10
e
7base8* 7base8 = 61base8
61 base8 = 6 × 81
+ 1 × 80 = 48 + 1 = 49base 10
"E perché le tabelline si estendono dallo 0 al 7 e mancano
le altre cifre ?"
Suvvia, non scherziamo: in ottale ci sono solo otto
cifre. E il numero dopo il 7 è 10....
|