Conversione tra le basi binarie In questa lezione impareremo la conversione tra binario e ottale la conversione tra binario ed esadecimale la conversione tra ottale ed esadecimale LEZIONE 10 Introduzione La conversione di un informazione da una base a un altra viene spesso utilizzata nei sistemi digitali e in questa lezione affronteremo casi particolari che permettono di sfruttare alcune proprietà matematiche per passare tra basi con caratteristiche comuni Il sistema binario utilizza due soli simboli per rappresentare l informazione, cioè a base b = 2 1 Oltre al sistema binario e decimale i sistemi usati per la rappresentazione dell informazione sono il sistema ottale e il sistema esadecimale: sistema binario: b = 2 1 = 2; sistema ottale: b = 2 3 = 8; sistema esadecimale: b = 2 4 = 16 Ricordiamo che in ogni caso nel calcolatore le informazioni sono codificate in binario Con la notazione B 1 B 2 indichiamo la conversione di base, cioè dobbiamo rappresentare ogni cifra della rappresentazione in base B 1 nella rappresentazione in base B 2 Tra i sistemi di numerazione appena elencati esiste un particolare legame tra le basi: sono tra loro legate dalla potenza, cioè la base ottale è terza potenza della base binaria e la base esadecimale è quarta potenza della base binaria Abbiamo quindi una relazione del tipo B a = B bk P Camagni, R Nikolassy TIC Office 2003 e Windows XP, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore SpA 2014 1
UdA 1 Il computer Base di partenza potenza della base di arrivo Quando tra la base B 1 e la base B 2 esiste la corrispondenza del tipo a = b k, cioè la base di partenza è una potenza k-esima della base di arrivo, ogni cifra della prima rappresentazione sarà composta da k cifre della seconda Quindi: tra base ottale e base binaria, cioè con B 1 = 8 e B 2 = 2, abbiamo k = 3 dato che 8 = 2 3 e quindi ogni cifra in base 8 può essere rappresentata in base B 2 con tre cifre; tra base esadecimale e base binaria, cioè con B 1 = 16 e B 2 = 2, abbiamo k = 4 dato che 16 = 2 4 e quindi ogni cifra in base 16 può essere rappresentata in base B 2 con quattro cifre Base di arrivo potenza della base di partenza Quando tra la base B 1 e la base B 2 esiste la corrispondenza del tipo b = a k, cioè la base di arrivo è una potenza k-esima della base di partenza, ogni cifra della seconda rappresentazione si ottiene raggruppando k cifre della prima Quindi: tra base binaria e base ottale, cioè con B1 = 2 e B2 = 8, abbiamo k = 3 dato che 8 = 23 e quindi ogni cifra in base 8 può essere ottenuta raggruppando le cifre binarie tre alla volta e convertendo ogni gruppo in una cifra ottale; tra base binaria e base esadecimale, cioè con B1 = 2 e B2 = 16, abbiamo k = 4 dato che 16 = 24 e quindi ogni cifra in base 16 può essere ottenuta raggruppando le cifre binarie quattro alla volta e convertendo ogni gruppo in una cifra ottale Conversione tra binari e ottali Il sistema ottale si basa sulla numerazione in base 8, quindi con b = 8, che utilizza i simboli Σ = {0,1,2,3,4,5,6,7} che corrispondono alle prime 8 cifre del sistema decimale: ogni numero è costituito da una stringa di cifre ottali il cui valore è determinato dal prodotto della cifra per una potenza della base, il cui esponente è dato dalla posizione della cifra nella stringa Viene usato principalmente come rappresentazione intermedia per la comunicazione con le macchine digitali in quanto, raggruppando terne di bit, è più vicino al sistema di numerazione decimale utilizzato dall uomo rispetto al binario utilizzato dalla macchina Nella tabella seguente riportiamo la codifica nelle tre basi ottale, decimale e binaria ottale 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 decimale 0 10 1 10 2 10 3 10 4 10 5 10 6 10 7 10 binaria 000 2 001 2 010 2 011 2 100 2 101 2 110 2 111 2 Possiamo fare due osservazioni: la codifica ottale coincide con i primi otto elementi della codifica decimale; tutte le otto combinazioni sono codificate con stringhe di 3 bit, dato che 2 3 = 8 Eseguiamo ora la conversione tra le basi ottale e binaria 2 P Camagni, R Nikolassy TIC Office 2003 e Windows XP, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore SpA 2014
Conversione tra le basi binarie Lezione 10 Da binario a ottale Per passare dalla codifica binaria a quella ottale raggruppiamo le cifre binarie a gruppi di 3 e sostituiamole con la corrispondente cifra del sistema ottale EsEmpIo Conversione di 110111 in ottale Convertiamo il numero binario 110111 2 Per prima cosa separiamo i bit a gruppi di 3: 110 2 111 2 Convertiamo in ottale ogni gruppo di 3 cifre: 110 2 = 6 8 e 111 2 = 7 8 Quindi il numero ottale risultante è il seguente: 110111 2 = 67 8 Sinteticamente, si può effettuare l operazione con lo schema a lato 110 111 2 6 7 8 EsEmpIo Conversione di 101100 in ottale 101 100 Vediamo un secondo esempio, dove convertiamo il numero 101100 2 Schematicamente abbiamola situazione mostrata a lato: Quindi il risultato è 101100 2 = 54 8 5 4 Effettua la conversione in ottale dei seguenti numeri binari: 1 110010 3 110010 2 101001 4 100000 EsEmpIo Conversione di 11001010 in ottale Vediamo come convertire il numero 11001010 2 : in questo caso il numero binario è composto da 8 bit, quindi non è costituito da un multiplo di 3 Bisogna fare attenzione ad aggiungere a sinistra i bit mancanti, naturalmente con valore 0 Il numero da convertire diviene quindi il seguente 011001010 2, suddivisibile in tre ottetti: Quindi il risultato è 11001010 2 = 312 8 011 001 010 V 3 1 2 P Camagni, R Nikolassy TIC Office 2003 e Windows XP, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore SpA 2014 3
UdA 1 Il computer Esempio Conversione di 1011010 in ottale Vediamo un secondo esempio: convertiamo il numero 1011010 2 1 Per prima cosa separiamo i bit a gruppi di tre partendo da destra: 1 011 010 2 2 Quindi completiamo le terne aggiungendo a sinistra il numero di 0 mancanti, che in questo caso sono 2: 001 011 010 2 3 Solo ora possiamo procedere con la conversione: Quindi il risultato è 1011010 2 = 132 8 001 011 010 V 1 3 2 L errore tipico che si commette in questa situazione è quello di partire con la conversione da sinistra e aggiungere gli zeri mancanti a destra; per esempio nel caso precedente si otterrebbe: 101 101 000 2 = 5 5 0 8 Il risultato ottenuto è diverso dal precedente ed è sbagliato dato che 001 011 010 2 <> 101 101 000 2 Da ottale a binario Per passare dalla codifica ottale a quella binaria, a ogni cifra ottale sostituiamo la corrispondente cifra codificata in binario Esempio Conversione di 63 8 in binario Convertiamo il numero ottale 63 8 in binario, utilizzando lo schema nella figura: 6 3 Quindi il risultato è 63 8 = 111011 2 110 011 4 P Camagni, R Nikolassy TIC Office 2003 e Windows XP, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore SpA 2014
Conversione tra le basi binarie Lezione 10 EsEmpIo Conversione di 126 8 in binario Convertiamo il numero ottale 126 8 in binario: Il risultato è 126 8 = 001010110 2, dove eventualmente gli zeri a sinistra possono essere eliminati ottenendo 126 8 = 1010110 2 1 2 6 001 010 110 V Effettua la conversione in binario dei seguenti numeri: 1 7658 2 4328 3 2728 4 1238 Conversione tra binari ed esadecimali Il sistema esadecimale si basa sulla numerazione in base 16, quindi con b = 16, che utilizza i simboli Σ = {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}, dove ogni numero è costituito da una stringa di cifre esadecimale il cui valore è determinato dal prodotto della cifra per una potenza della base il cui esponente è dato dalla posizione della cifra nella stringa Nella tabella seguente riportiamo la codifica nelle tre basi esadecimale, decimale e binaria Essa viene usata come rappresentazione intermedia per la comunicazione con le macchine digitali in quanto, essendo ogni byte composto da 8 bit, viene suddiviso in due gruppi da 4 bit (nibble) e ciascuno di essi è codificato mediante il sistema esadecimale Esadecimale 0 16 1 16 2 16 3 16 4 16 5 16 6 16 7 16 8 16 9 16 A 16 B 16 C 16 D 16 E 16 F 16 Decimale 0 10 1 10 2 10 3 10 4 10 5 10 6 10 7 10 8 10 9 10 10 10 11 10 12 10 13 10 14 10 15 10 Binaria 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 NoTAZIoNE per I NUmERI EsADECImALI Generalmente nei testi che trattano le macchine digitali la rappresentazione dei simboli numerici viene indicata senza specificare la base di rappresentazione e mentre in alcuni casi è evidente l individuazione della base per la presenza delle lettere alfabetiche come nei seguenti casi {1B, 9C, BA, 3FF, E12DFA}, in altri c è ambiguità quando contengono solo numerali come {12, 91, 172, 4354 ecc}: questi ultimi possono appartenere sia alla codifica decimale sia a quella esadecimale Per evitare confusione talvolta si trova il valore 39 in base esadecimale, scritto come 39 h oppure 0x39 P Camagni, R Nikolassy TIC Office 2003 e Windows XP, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore SpA 2014 5
UdA 1 Il computer Da binario a esadecimale Per passare dalla codifica binaria a quella esadecimale raggruppiamo le cifre binarie a gruppi di 4 e sostituiamole con la corrispondente cifra del sistema esadecimale EsEmpIo Conversione di 10101110 in esadecimale Convertiamo il numero binario 10101110 2 Per prima cosa separiamo i bit a gruppi di 4: 1010 1110 2 Quindi a ogni gruppo sostituiamo la cifra ottale corrispondente, cioè convertiamo in esadecimale ogni gruppo di 4 cifre: 1010 2 = A h e 1110 2 = E h Il numero esadecimale risultante è il seguente: 10101110 2 = AE h Sinteticamente si può effettuare l operazione con lo schema a lato, simile a quello utilizzato per la conversione in ottale: 1010 1110 A E EsEmpIo Conversione di 111001 in esadecimale Convertiamo il numero binario 111001 2 Per prima cosa completiamo l ottetto aggiungendo due zeri: Il numero esadecimale risultante è il seguente: 111001 2 = 39 h 0011 1001 3 9 Un singolo byte è sempre rappresentato da un numero esadecimale con due cifre, la prima per i quattro bit più significativi e la seconda per quelli meno significativi: 0x0B, 0xAB, 0x5E, 0xFF Effettua la conversione in esadecimale dei seguenti numeri: 1 11011010 2 2 111110 2 3 110000 2 4 11011 2 6 P Camagni, R Nikolassy TIC Office 2003 e Windows XP, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore SpA 2014
Conversione tra le basi binarie Lezione 10 Come per la conversione da binario, fate attenzione quando aggiungete gli zeri e raggruppate i nibble: gli zeri si inseriscono sempre a sinistra Da esadecimale a binario Per passare dalla codifica esadecimale a quella binaria a ogni cifra esadecimale sostituiamo la corrispondente cifra codificata in binario EsEmpIo Conversione di 63 h in binario Convertiamo il numero esadecimale 63 h in binario, direttamente utilizzando lo schema a lato: Quindi il risultato è 63 h = 0110 0011 2 ed eliminando il primo 0 si ottiene 1100011 2 6 3 0110 0011 Vediamo un secondo esempio EsEmpIo Conversione di C8 h in binario Convertiamo il numero esadecimale C8 h in binario: Il risultato è C8 h = 1100 1000 2 C 8 1100 1000 Effettua la conversione in binario dei seguenti numeri: 1 1A h 2 2B h 3 3C h 4 F4 h Conversione tra ottali ed esadecimali Il metodo più veloce per passare dal sistema ottale all esadecimale o viceversa è quello di passare attraverso il sistema binario Vediamo alcuni esempi P Camagni, R Nikolassy TIC Office 2003 e Windows XP, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore SpA 2014 7
UdA 1 Il computer EsEmpIo Conversione di 352 8 in esadecimale Convertiamo (352) 8 in esadecimale: 3 5 2 011 101 010 V E A Quindi il risultato è (352) 8 = (11 101 010) 2 da cui si ottiene (352) 8 = (1110 1010) 2 = (EA) h Effettua la conversione in esadecimale dei seguenti numeri ottali: 1 172 8 2 632 8 3 475 8 4 303 8 Conversione di 7C h in ottale Convertiamo (7C) h in ottale: 7 C EsEmpIo 0111 1100 V 1 7 4 Quindi (7C) h = (0111 1100) 2 da cui si ottiene (7C) H = (001 111 100) 2 = (174) 8 Effettua la conversione in esadecimale dei seguenti numeri esadecimali: 1 74 h 2 C3 h 3 19A h 4 73D h 8 P Camagni, R Nikolassy TIC Office 2003 e Windows XP, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore SpA 2014
Conversione tra le basi binarie Lezione 10 ABBIAMO IMPARATO CHE Quando tra la base B 1 e la base B 2 esiste la corrispondenza del tipo a = b k, cioè la base di partenza è una potenza k-esima della base di arrivo, ogni cifra della prima rappresentazione sarà composta da k cifre della seconda Quando tra la base B 1 e la base B 2 esiste la corrispondenza del tipo b = a k, cioè la base di arrivo è una potenza k-esima della base di partenza, ogni cifra della seconda rappresentazione si ottiene raggruppando k cifre della prima Per passare dalla codifica binaria a quella ottale raggruppiamo le cifre binarie a gruppi di 3 e le sostituiamo con la corrispondente cifra del sistema ottale Per passare dalla codifica ottale a quella binaria a ogni cifra ottale sostituiamo la corrispondente cifra codificata in binario Per passare dalla codifica binaria a quella esadecimale raggruppiamo le cifre binarie a gruppi di 4 e le sostituiamo con la corrispondente cifra del sistema ottale Per passare dalla codifica esadecimale a quella binaria a ogni cifra ottale sostituiamo la corrispondente cifra codificata in binario P Camagni, R Nikolassy TIC Office 2003 e Windows XP, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore SpA 2014 9
UdA 1 Il computer Verifichiamo le competenze 1 Esegui le seguenti conversioni da binario ad ottale 010100 2 000111 2 101010 2 001110 2 2 Esegui le seguenti conversioni da binario a ottale 110011 2 100001 2 1110011 2 1100001 2 10110011 2 11000101 2 3 Esegui le seguenti conversioni da ottale a binario 12 8 = 34 8 = 567 8 = 10 8 = 4 Esegui le seguenti conversioni da ottale a binario 21 8 _ 303 8 _ 200 8 _ 1753 8 _ 2542 8 _ 5104 8 _ 5 Esegui le seguenti conversioni da binario a esadecimale 1111010 2 10101110 2 11111011 2 11010101 2 6 Esegui le seguenti conversioni da binario a esadecimale 111010 2 10111110 2 1011011 2 10010001 2 111011011 2 10101010001 2 7 Esegui le seguenti conversioni da esadecimale a binario A7F 16 _ B4C 16 _ 27E 16 _ 490 16 _ 8 Esegui le seguenti conversioni da esadecimale a binario 322 A31 F2B 7764 2359 4B38 9 Esegui le seguenti conversioni da ottale a esadecimale 72 8 2 = h 54 8 2 = h 321 8 2 = h 610 8 2 = h 10 Esegui le seguenti conversioni da esadecimale a ottale 27 h 18 h AB2 h 290 h 345 h 67FE h CD63 h 279B h C163 h E279 h 10 P Camagni, R Nikolassy TIC Office 2003 e Windows XP, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore SpA 2014