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....
|