La numerazione ottale
Il sistema di numerazione ottale ha ampio utilizzo in informatica E’ un sistema di numerazione posizionale La base è 8 Il sistema utilizza dunque otto cifre {0, 1, 2, 3, 4, 5, 6, 7} Si ricorda infatti che il numero di cifre utilizzate è proprio pari alla base del sistema di numerazione
Un numero in base 8 non potrà dunque contenere cifre superiori a 7 Ad esempio è impossibile avere
◦ 389(8) ◦ 478(8) Mentre è possibile avere ◦ 547(8)
Per convertire un numero in base 8 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 8 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
◦4537(8)
Il 4 si trova in posizione 3, il 5 si trova in posizione 2, il 3 si trova in posizione 1, il 7 si trova in posizione 0 Il 4 va moltiplicato per un peso pari a 83 Il 5 va moltiplicato per un peso pari a 82
Il 3 va moltiplicato per un peso pari a 81 Il 7 va moltiplicato per un peso pari a 80 Abbiamo dunque che 4537(8) = = 4 X 83 + 5 X 8 2 + 3 X 8 1 + 7 X 8 0 = = 4 X 512 + 5 X 64 + 3 X 8 + 7 = = 2048 + 320 + 24 + 7 = = 2399(10)
Passaggio da base 10 a base 8 Il metodo delle divisioni successive utilizzato per passare da base 10 a base 2 conserva la sua validitĂ , soltanto che stavolta, essendo la base 8 e non 2 , bisogna dividere per 8 anzichĂŠ per 2 ď‚— Supponiamo di voler convertire 1248(10) in base 8 ď‚—
Se dividiamo 1248 per 8 otteniamo quoziente 156 e resto 0 Dividendo 156 per 8 otteniamo quoziente pari a 19 con resto 4 Dividendo 19 per 8 otteniamo 2 con resto 3 Dividendo 2 per 8 otteniamo quoziente 0 e resto 2
1248
0 156 4 19 3 2 2 0
Quindi
1248(10)
= 2340(8)
Da ottale a binario e viceversa Vediamo ora come si passa dal binario all’ottale Si considera il numero binario e. partendo da destra si divide in gruppi di 3 cifre binarie. Se dopo l'operazione avanzano una o due cifre si aggiungono tanti zeri quanti bastano a coprire un gruppo di tre, Ogni gruppo va poi convertito nel corrispondente numero decimale.
Esempio
11010011012 = = 001 | 101 | 001 | 101= = 15158
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 8 Ad esempio 29 = (23)3 = 83 28 = 22 X 26 = 22 X (23)2 = 22 X 82 27 = 21 X 26 = 21 X (23)2 = 21 X 82
26 25 24 23 22 21 20
= 20 = 22 = 21 = 20 = 22 = 21 = 20
X 26 = 20 X (23)2 = 1 X 82 X 23 = 2 2 X 81 X 23 = 2 1 X 81 X 23 = 2 0 X 81 X 20 = 2 2 X 1 = 2 2 X 8 0 X 20 = 2 1 X 1 = 2 1 X 8 0 X 20 = 2 0 X 1 = 2 0 X 8 0
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 = = 1 X 8 3 + 1 X 2 2 X 8 2 + 0 X 2 1 X 82 + 1 X 20 X 8 2 + 0 X 2 2 X 8 1 + 0 X 2 1 X 81 + 1 X 2 0 X 81 + + 1 X 2 2 X 8 0 + 0 X 2 1 X 8 0 + 1 X 2 0 X 80
Ora mettiamo le potenze di 8 in evidenza 11010011012 = 1 X 83 + 1 X 22 X 82 + 0 X 21 X 82 + 1 X 20 X 82 + 0 X 22 X 81 + 0 X 21 X 81 + 1 X 20 X 81 + + 1 X 2 2 + 0 X 2 1 + 1 X 2 0 = 1 X 83 + + (1 X 22 + 0 X 21 + 1 X 20 ) X 82 + + (0 X 22 + 0 X 21 + 1 X 20 ) X 81 + + (1 X 22 + 0 X 21 + 1 X 20 ) X 80 = = 1 X 83 + 5 X 82 + 1 X 81 + 5 X 80
Ma questo è proprio il risultato che avevamo ottenuto direttamente
Dunque se partendo da destra organizziamo i bit in gruppi di tre possiamo mettere in evidenza delle potenze di 23 cioè di 8 mentre quello che rimane fra parentesi dopo aver messo in evidenza queste potenze di 8 è proprio il valore che avrebbe il gruppo di tre bit se fosse isolato e non all’interno del numero originale
Ora sappiamo a che servono i numeri in base otto Rendono molto piĂš sintetica la rappresentazione di stringhe di bit molto lunghe ď‚— 111000101010101010111101111101012 = 342525367658 ď‚—
Conversione da ottale a binario ď‚—
Per quello che abbiamo appena mostrato appare chiaro che la conversione da ottale a binario deve avvenire in maniera diametralmente opposta: ogni cifra del numero in base otto va convertita in un gruppo di tre bit
esempio 2521437748 = = 010 101 010 001 100 011 111 111 1002 3425675478 = = 011 100 010 101 110 111 101 100 1112
Aritmetica in base otto
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
42568 + 37348
Se sommiamo le due cifre meno significative otteniamo
6
+ 4 = 10
Questo numero in ottale si scrive
1010 = 128
infatti
128
= 1 X 8 + 2 = 10 allora si deve scrivere la seconda cifra cioè 2 e si riporta 1
Dunque
1
42568 + 37348 = 2
Se sommiamo le due cifre successive e il riporto generato dalle cifre precedenti otteniamo
5
+3+1=9
Questo numero in ottale si scrive
910
= 118
infatti
118
=1X8+1=9 allora si deve scrivere la seconda cifra cioè 1 e si riporta 1
Dunque
1
42568 + 37348 = 12
Se sommiamo le due cifre successive e il riporto generato dalle cifre precedenti otteniamo
2
+ 7 + 1 = 10
Questo numero in ottale si scrive
1010 = 128
infatti
128
= 1 X 8 + 2 = 10 allora si deve scrivere la seconda cifra cioè 2 e si riporta 1
Dunque
1
42568 + 37348 = 212
Se sommiamo le due cifre successive e il riporto generato dalle cifre precedenti otteniamo
4
+3+1=8
Questo numero in ottale si scrive
810
= 108
infatti
108
=1X8+0=8 allora si deve scrivere la seconda cifra cioè 0 e si riporta 1
Dunque
42568 + 37348 = 102128 8