Autronica LEZIONE N° 10 • • • • • • • Conversione da base 2 a base 8 Conversione da base 2 a base 16 Conversione da base 8 a base 16 Aritmetica binaria per numeri positivi Rappresentazione di numeri con segno Aritmetica binaria per numeri relativi Rappresentazione BCD AUTRONICA 10.1 Richiami • • • • Sistema numerico Base 2, 3, 4, 5, 8, 10, 12, 16 Conversione da base “N” a base 10 Conversione da base 10 a base “N” AUTRONICA 10.2 Binario => Ottale • Dato un numero binario N d8 d 7 d 6 d 5 d 4 d 3d 2 d1d 0 .d 1d 2 d 3 d8 28 d 7 27 d 6 26 d 5 25 d 4 24 d 3 23 d 2 2 2 d1 21 d 0 20 d 1 2 1 d 2 2 2 d 3 2 3 • Fattorizzando d 2 d 2 d 2 2 d 2 d 2 d 2 2 d 2 d 2 d 2 2 d 2 d 2 d 2 2 d 2 d 2 d 2 8 d 2 d 2 d 2 8 d 2 d 2 d 2 8 d 2 d 2 d 2 8 2 1 8 0 7 0 0 7 2 2 0 0 0 2 1 1 3 0 4 2 AUTRONICA 3 3 1 5 1 1 2 2 6 0 4 1 0 1 8 2 0 1 1 5 1 2 2 6 2 2 6 0 3 0 1 1 3 2 1 3 10.3 Metodo • Basta raggruppare i digit del numero binario (bit) tre a tre e convertire ciascun gruppo nel corrispondente digit ottale • Esempio 1101011010110111.10011101 001 101 011 010 110 111 . 100 111 010 153267.472 • Nota Sono stati aggiunti degli zeri in testa e in coda affinché si avessero due gruppi di digit multipli di tre AUTRONICA 10.4 Binario => Esadecimale • Stesso procedimento del caso precedente, però ora si raggruppano i bit quattro a quattro • Esempio 1101011010110111.10011101 1101 0110 1011 0111 . 1001 1101 D6B7.9D • Per le conversioni ottale => binario e esadecimale => binario si opera in modo simile convertendo ciascun digit nel corrispondente numero binario AUTRONICA 10.5 Ottale => Esadecimale (Esadecimale => Ottale) • Conversione intermedia in binario • Esempio – Ottale => Esadecimale 75238 111101010011 1111 0101 0011 F5316 – Esadecimale => Ottale 9F3C16 1001111100111100 001 001 111 100 111 100 1174748 AUTRONICA 10.6 Aritmetica binaria 1 • Somma di due bit • x+y • s = Somma • c = Carry (RIPORTO) x y s c 0 0 0 0 0 1 1 0 1 0 1 0 • Esempio carry 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 AUTRONICA 89 + 117 = 206 10.7 Aritmetica binaria 2 • Sottrazione di due bit • x -y • d = Differenza • b = Borrow (Prestito) • Esempio borrow 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 1 x y d b x y s c 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 AUTRONICA 206 - 117 = 89 10.8 Aritmetica binaria 3 • Prodotto di due bit • axb • p = Prodotto a b p 0 0 0 0 1 0 1 0 0 • Esempio 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 AUTRONICA 13 x 5 = 65 10.9 Numeri binari con segno • Il numero massimo di bit usato da un calcolatore è noto e fisso • Solitamente è : 4 o 8 o 16 o 32 (Word) • 8 bit formano un Byte • Non esiste un apposito simbolo per il segno • Si usa il bit più significativo per indicare il segno • 0= + • 1= - • Si hanno varie tecniche di codifica • • • • Modulo e segno Complemento a 1 Complemento a 2 In traslazione ( cambia la codifica del segno) AUTRONICA 10.10 Varie rappresentazioni su 4 bit Base 10 7 6 5 4 3 2 1 0 0 -1 -2 -3 -4 -5 -6 -7 -8 Mod e seg 0.111 0.110 0.101 0.100 0.011 0.010 0.001 0.000 1.000 1.001 1.010 1.011 1.100 1.101 1.110 1.111 - comp a 1 comp a 2 0.111 0.111 0.110 0.110 0.101 0.101 0.100 0.100 0.011 0.011 0.010 0.010 0.001 0.001 0.000 0.000 1.111 0.000 1.110 1.111 1.101 1.110 1.100 1.101 1.011 1.100 1.010 1.011 1.001 1.010 1.000 1.001 1.000 AUTRONICA trasl. 1.111 1.110 1.101 1.100 1.011 1.010 1.001 1.000 1.000 0.111 0.110 0.101 0.100 0.011 0.010 0.001 0.000 10.11 Modulo e segno • Se si dispone di “n” bit w d n1d n2 d 0 • Il corrispondente in base 10 è w10 1 n1 d n2 2n2 dn3 2n3 d0 20 d • Il renge dei numeri risulta 1 2 n 1 w10 2 n 1 1 • Esempio n = 4 0101 1 5 5 0 1110 1 6 6 1 AUTRONICA 10.12 Complemento a 1 • Se si dispone di “n” bit w d n1d n2 d 0 • Il corrispondente in base 10 è w10 1 2 n 1 d n 1 d n 2 2 n 2 d n 3 2 n 3 d 0 20 • Il renge dei numeri risulta 1 2 n 1 w10 2 n 1 1 • Esempio n = 4 0101 1 8 0 5 5 1110 1 81 6 1 AUTRONICA 10.13 Complemento a 2 • Se si dispone di “n” bit w d n1d n2 d 0 • Il corrispondente in base 10 è w10 2 n 1 d n 1 d n 2 2 n 2 d n 3 2 n 3 d 0 20 • Il renge dei numeri risulta 2 n 1 w10 2 n 1 1 • Esempio n = 4 0101 8 0 5 5 1110 81 6 2 AUTRONICA 10.14 Traslazione • Se si dispone di “n” bit w d n1d n2 d 0 • Il corrispondente in base 10 è w10 d n 1 2 n 1 d n 2 2 n 2 d 0 20 2 n 1 • Il renge dei numeri risulta 2 n 1 w10 2 n 1 1 • Esempio n = 4 0101 5 8 3 1110 14 8 6 AUTRONICA 10.15 Trasformazione da numeri positivi a numeri negativi e viceversa • Per la rappresentazione in modulo e segno • Basta cambiare il bit di segno N 5 00101 N 5 10101 • Per la rappresentazione in complemento a 1 • Si complementano tutti bit N 5 00101 N 5 11010 • Per la rappresentazione in complemento a 2 • Si complementano tutti bit e si somma 1 N 5 00101 N 5 11010 1 11011 • Per la rappresentazione in tralazione • Si somma sempre 2n-1 N 5 16 5 10101 N 5 16 5 01011 AUTRONICA 10.16 Tabella Riassuntiva • Con riferimento a una word di “n” bit, si ha: TIPO VALORE DINAMICA d M. S. w10 1 n1 d n 2 2 n 2 d n 3 2 n 3 d 0 20 1 2 n 1 w10 2 n 1 1 C.1 w10 1 2 n 1 d n 1 d n 2 2 n 2 d n 3 2 n 3 d 0 20 1 2 n 1 w10 2 n 1 1 C. 2 w10 2 n 1 d n 1 d n 2 2 n 2 d n 3 2 n 3 d 0 20 2 n 1 w10 2 n 1 1 TR. w10 2 n 1 d n 1 2 n 1 d n 2 2 n 2 d 0 20 2 n 1 w10 2 n 1 1 • K = 2n • H =2n-1 • W numero in base 2 da convertire • W’ numero convertito TIPO W0 W0 M. S. W ' W W ' H W C.1 W ' W W ' K 1 W C. 2 W ' W W ' K W TR. W ' H W W ' H W AUTRONICA 10.17 Modulo e segno • Somma [-2n-1<(X+Y)<2n-1] Addendi Somma Somma M. S. Correzione X 0 Z X Y Z' X Y Y 0 X 0 Z X Y Z' X Y H no * Y 0 X 0 Z X Y Z' X Y H no * Y 0 X 0 Z X Y Z ' X Y 2H no * Y 0 • * è necessario fare un test sul segno prima di eseguire la somma AUTRONICA 10.18 Complemento a 1 • Somma [-2n-1<(X+Y)<2n-1] Addendi Somma Somma C.1 X 0 Z X Y Z' X Y Y 0 X 0 Z X Y Z ' X Y 1 K Y 0 X 0 Z X Y Z ' X Y 1 K Y 0 X 0 Z X Y Z ' X Y 2 2K Y 0 • • • • Correzione Z Z '1* Z Z '1* Z Z '2 * * Osservare che K non è possibile rappresentarlo su n bit * è necessario un test sul bit di segno, ma la correzione è facile * se il risultato è negativo è già rappresentato in C. 1 ** è necessario aggiungere 1 per ottenere il risultato in C. 1 AUTRONICA 10.19 Esempi • Parola di 4 bit • 3+4=7 0 0 1 1 0 1 0 0 0 1 1 1 • (- 4) +(-3) = -7 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 0 0 5 + (-3) = 2 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 0 6 + 5 =11 0 1 1 0 0 1 0 1 1 0 1 1 AUTRONICA (-5) + 3 = (-2) 1 0 1 0 0 0 1 1 1 1 0 1 (-6) + (-5) =(-11) 1 0 0 1 1 0 1 0 1 0 0 1 1 10.20 Complemento a 2 • Somma [-2n-1<(X+Y)<2n-1] Addendi Somma Somma C. 2 X 0 Z X Y Z' X Y Y 0 X 0 Z X Y Z' X Y K Y 0 X 0 Z X Y Z' X Y K Y 0 X 0 Z X Y Z ' X Y 2K Y 0 Correzione Z Z' Z Z' * XY Z Z ' ** Y X *** • Osservare che K non è possibile rappresentarlo su n bit • * Per X < |Y| il risultato è rappresentato in C. 2 • ** Per Y < |X| il risultato è rappresentato in C. 2 • *** Il risultato è rappresentato in C. 2 AUTRONICA 10.21 Esempi • Parola di 4 bit • 3+4=7 5 + (-3) = 2 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 1 • (- 4) +(-3) = -7 1 1 0 0 1 1 0 1 1 1 0 0 1 6 + 5 =11 0 1 1 0 0 1 0 1 1 0 1 1 AUTRONICA (-5) + 3 = (-2) 1 0 1 1 0 0 1 1 1 1 1 0 (-6) + (-5) =(-11) 1 0 1 0 1 0 1 1 1 0 1 0 1 10.22 Osservazioni • Se la word si estende “K” bit si ha • per numeri positivi si aggiungono in testa K zeri • per numeri negativi si aggiungono in testa K uno • Esempio Word di 4 bit Word di 6 bit 3 0.011 0.00011 4 0.100 0.00100 7 0.111 0.00111 -3 1.101 1.11101 -4 1.100 1.11100 -7 1.001 1.11001 AUTRONICA 10.23 OverfloW • Parola di 4 bit • 3+4=7 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 • (- 4) +(-3) = -7 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 5 + (-3) = 2 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 6 + 5 =11 0 1 0 0 0 1 1 0 0 1 0 1 1 0 1 1 (-5) + 3 = (-2) 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 (-6) + (-5) =(-11) 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 Ov cn cn1 AUTRONICA 10.24 BCD (Binary-Coded Decimal numbers) • Necessità di rappresentare i numeri decimali in codice binario • 8421 BCD • si codifica in binario ciascuna cifra decimale utilizzando i primi 10 numeri binari su 4 bit • Esempio • 45310 4 5 3 0100 0101 0011 • 010001010011 • è possibile eseguire somme e sottrazioni in BCD AUTRONICA 10.25 BCD – Sette Segmenti • Per visualizzare le cifre decimali si usa frequentemente un Display a sette segmenti a f b g e d c • È possibile realizzare un codificatore • BCD SETTE SEGMENTI AUTRONICA 10.26 Tabella di verità • La tabella di verità risulta 8 4 2 1 a b c d e f g 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 2 0 0 1 0 1 1 0 1 1 0 1 3 0 0 1 1 1 1 1 1 0 0 1 4 0 1 0 0 0 1 1 0 0 1 1 5 0 1 0 1 1 0 1 1 0 1 1 6 0 1 1 0 1 0 1 1 1 1 1 7 0 1 1 1 1 1 1 0 0 1 0 8 1 0 0 0 1 1 1 1 1 1 1 9 1 0 0 1 1 1 1 1 0 1 1 AUTRONICA 10.27 Conclusioni • • • • • • Sistema numerico Base 2, 3, 4, 5, 8, 10, 12, 16 Conversione da base “N” a base 10 Conversione da base 10 a base “N” Aritmetica binaria Rappresentazione di numeri con segno AUTRONICA 10.28