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 8 3 Il 5 va moltiplicato per un peso pari a 8 2
Il 3 va moltiplicato per un peso pari a 8 1 Il 7 va moltiplicato per un peso pari a 8 0 Abbiamo dunque che 4537 (8) = = 4 X X X X 8 0 = = 4 X X X = = = = 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
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 = = 001 | 101 | 001 | 101= =
Cerchiamo di spiegare perché funziona Sviluppiamo anzitutto il numero binario = 1 X X X X X X X X X X 2 0 = vogliamo ora trasformare le potenze per mettere in evidenza potenze di 8 Ad esempio 2 9 = (2 3 ) 3 = = 2 2 X 2 6 = 2 2 X (2 3 ) 2 = 2 2 X = 2 1 X 2 6 = 2 1 X (2 3 ) 2 = 2 1 X 8 2
2 6 = 2 0 X 2 6 = 2 0 X (2 3 ) 2 = 1 X = 2 2 X 2 3 = 2 2 X = 2 1 X 2 3 = 2 1 X = 2 0 X 2 3 = 2 0 X = 2 2 X 2 0 = 2 2 X 1 = 2 2 X = 2 1 X 2 0 = 2 1 X 1 = 2 1 X = 2 0 X 2 0 = 2 0 X 1 = 2 0 X 8 0
quindi = 1 X X X X X X X X X X 2 0 = = 1 X X 2 2 X X 2 1 X X 2 0 X X 2 2 X X 2 1 X X 2 0 X X 2 2 X X 2 1 X X 2 0 X 8 0
Ora mettiamo le potenze di 8 in evidenza = 1 X X 2 2 X X 2 1 X X 2 0 X X 2 2 X X 2 1 X X 2 0 X X X X 2 0 = 1 X (1 X X X 2 0 ) X (0 X X X 2 0 ) X (1 X X X 2 0 ) X 8 0 = = 1 X X X X 8 0
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 2 3 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 =
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 = = = =
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
Se sommiamo le due cifre meno significative otteniamo = 10 Questo numero in ottale si scrive = 12 8
infatti 12 8 = 1 X = 10 allora si deve scrivere la seconda cifra cioè 2 e si riporta 1
Dunque = 2
Se sommiamo le due cifre successive e il riporto generato dalle cifre precedenti otteniamo = 9 Questo numero in ottale si scrive 9 10 = 11 8
infatti 11 8 = 1 X = 9 allora si deve scrivere la seconda cifra cioè 1 e si riporta 1
Dunque = 12
Se sommiamo le due cifre successive e il riporto generato dalle cifre precedenti otteniamo = 10 Questo numero in ottale si scrive = 12 8
infatti 12 8 = 1 X = 10 allora si deve scrivere la seconda cifra cioè 2 e si riporta 1
Dunque = 212
Se sommiamo le due cifre successive e il riporto generato dalle cifre precedenti otteniamo = 8 Questo numero in ottale si scrive 8 10 = 10 8
infatti 10 8 = 1 X = 8 allora si deve scrivere la seconda cifra cioè 0 e si riporta 1
Dunque =