ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 3 Sistema numerico Base 2, 3, 4, 5, 8, 10, 12, 16 Aritmetica binaria Conversione da base “N” a base 10 Conversione da base 10 a base “N” A.S.E.
Richiami Segnali analogici Segnali numerici Segnali digitali Conversione da segnale analogico a segnale numerico Conversione da segnale numerico a segnale analogico Codifica A.S.E.
Riepilogo (1) Segnale Analogico Segnale campionato Segnale numerico 1 Un segnale analogico ha un’ampiezza che varia in maniera continua nel tempo Segnale campionato Viene “congelato” il valore che il segnale analogico assume a intervalli regolari di tempo Segnale numerico 1 Viene assegnato al segnale campionato il valore numerico relativo all’intervallo di appartenenza A.S.E.
Riepilogo (2) Segnale numerico 2 Segnale digitale (binario) Al segnale quantizzato si può associare il valore numerico “codificato” Segnale digitale (binario) Particolare segnale numerico che può assumere solo due valori “0” e “1” Al valore “0” si associa, per esempio, 0 V Al valore “1” si associa, per esempio, 5 V A.S.E.
Codifica (1/4) Un valore numerico può essere codificato per mezzo di un numero n di simboli (cifre) binari il numero di cifre binarie necessario per la codifica è n = élog2Nù, dove N è il numero di livelli da codificare; se vale n = log2N, allora N = 2n e tutte le possibili sequenze di n cifre binarie sono utilizzate nella codifica; se invece n > log2N, allora la codifica utilizza un sottoinsieme N < 2n delle possibili sequenze di n cifre binarie; è possibile utilizzare diverse leggi di codifica, e il loro numero C è una funzione di N, n: se N = 2n , allora C è dato dal numero di permutazioni di N oggetti: A.S.E.
Codifica (2/4) se invece N < 2n , allora C può essere determinato considerando che: bisogna individuare N simboli di codifica fra i 2n possibili simboli rappresentabili con n cifre binarie; il loro numero è pari alle combinazioni C(2n,N) di N oggetti estratti da un insieme di 2n elementi: per ciascuna combinazione, possono essere definite P(N) = N! permutazioni diverse; complessivamente, il numero di codifiche è quindi dato da: nota: se N = 2n , sfruttando la proprietà 0!=1, l’espressione di CN coincide proprio col risultato ottenuto in precedenza, CN = N! A.S.E.
Codifica (3/4) Esempio: N = 7 ….. n = 3, CN = 8! = 40320 A B C A.S.E. Valore A B C 1 2 3 4 5 6 Esempio: N = 7 n = 3, CN = 8! = 40320 Valore A B C 1 2 3 4 5 6 ….. Valore A B C 1 2 3 4 5 6 A.S.E.
Codifica (4/4) Fra tutte le codifiche, due sono più significative: codifica naturale; codifica Gray; Esempio: N = 8 (n = 3, CN = 8! = 40320) Valore A B C 1 2 3 4 5 6 7 Valore A B C 1 2 3 4 5 6 7 CODIFICA NATURALE A.S.E. CODIFICA GRAY
Notazione Posizionale Per rappresentare una quantità maggiore di quella associata a ciascun simbolo (cifra, digit) si usano più digit per formare un numero La posizione relativa di ciascun digit all’interno del numero è associata ad un peso, dato dalla base di rappresentazione b Notazione posizionale Rappresenta il polinomio A.S.E.
Sistema Decimale Il sistema decimale è il sistema posizionale comunemente utilizzato nella nostra vita quotidiana Ad esempio il numero decimale 872.64, significa: Ciascuna cifra della rappresentazione è un simbolo dell’alfabeto decimale (0, 1, 2, …, 9) La posizione di una cifra all’interno del numero, relativa alla virgola decimale, indica il suo peso, ossia l’esponente ad essa associata nel suo sviluppo polinomiale A.S.E.
Sistema numerico non posizionale I numeri romani non danno luogo a un sistema numerico posizionale Come in un sistema posizionale, uno stesso simbolo in posizioni diverse assume valori diversi a differenza di un sistema posizionale, il peso di una cifra non è esprimibile come una potenza della base di rappresentazione non è definita una base di numerazione per i numeri romani lo sviluppo polinomiale non è possibile Esempio I; II; IV; VI; etc… A.S.E.
Sistema Numerico Base (radice) Digit (Cifra) Numero di simboli diversi di un sistema numerico Digit (Cifra) ciascun simbolo = DIGIT denota una quantità Base Sistema Digit 2 binario 0, 1 3 ternario 0, 1, 2 4 quaternario 0, 1, 2, 3 5 quinario 0, 1, 2, 3, 4 8 ottale 0, 1, 2, 3, 4, 5, 6, 7 10 decimale 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 12 duodecimale 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B 16 esadecimale 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F A.S.E.
Rappresentazione completa Uno stesso numero rappresenta quantità diverse in funzione della base utilizzata Si deve quindi indicare la base utilizzata. Ad esempio: Altri esempi: Nel caso rappresentazione binaria, una “binary digit” si indica come bit (letteralmente “pezzetto”) A.S.E.
Tabella A.S.E. Decimale Binario Ternario Ottale Esadecimale 1 2 10 3 1 2 10 3 11 4 100 5 101 12 6 110 20 7 111 21 8 1000 22 9 1001 1010 A 1011 102 13 B 1100 14 C 1101 15 D 1110 112 16 E 1111 120 17 F 10000 121 A.S.E.
Operazioni aritmetiche di base Le quattro operazioni aritmetiche di base sono: Addizione Sottrazione Moltiplicazione Divisione Tali operazioni sono note in base decimale Si possono eseguire con le stesse modalità in qualunque base diversa da 10 Si considera ora il sistema binario e quello ternario quello binario è di gran lunga il più importante A.S.E.
Addizione Addizione di due digit a b Sistema binario Sistema ternario Può essere espressa i modo tabellare Sistema binario Sistema ternario a 1 2 b C=1 b 1 a C=1 a+b a+b A.S.E.
Addizione binaria 1 Somma di due bit Esempio x y s c 1 1 x + y s = Somma c = Carry (RIPORTO) Esempio x y s c 1 1 carry (c) addendo 89 + 117 = 206 addendo somma A.S.E.
Addizione binaria 2 In caso di numeri frazionari si deve allineare il punto binario Esempio 1011.011+110.1011 =10010.0001 1 1. 0. 11.375 + 06.6875 = 18.0625 A.S.E.
Addizione ternaria 1 Somma di due digit Esempio: x y s c 1 2 1 2 x + y 1 2 Somma di due digit x + y d = Somma c = Carry (RIPORTO) Esempio: riporto (c) 1 2 addendo 1666 + 1420 = 3086 addendo somma A.S.E.
Addizione ternaria 2 In caso di numeri frazionari si deve allineare il punto ternario Esempio 2012.012+120.1022 =2202.1212 1 2 2. 0. 59.1851 + 15.4320 = 73.6171 A.S.E.
Sottrazione Sottrazione di due digit b b Può essere espressa i modo tabellare Sistema binario Sistema ternario b 1 2 a B=1 b 1 a B=1 a-b a-b A.S.E.
Sottrazione binaria 1 Sottrazione di due bit Esempio x y D B 1 1 x - y D = Differenza B = Borrow (PRESTITO) Esempio x y D B 1 1 prestito (b) minuendo 206 – 117 = 89 sottraendo differenza A.S.E.
Sottrazione binaria 2 In caso di numeri frazionari si deve allineare il punto binario Esempio 10010.0001- 1011.011 =110.1011 1 0. 1. 18.0625 - 11.375 = 06.6875 A.S.E.
Sottrazione ternaria 1 Sottrazione di due digit Esempio x y D B 1 2 1 1 2 Sottrazione di due digit x - y D = Differenza B = Borrow (PRESTITO) Esempio prestito (b) 1 2 minuendo 3086 – 1420 = 1666 sottraendo differenza A.S.E.
Sottrazione ternaria 2 In caso di numeri frazionari si deve allineare il punto ternario Esempio: Esempio 2: 2012.012 - 120.1022 = 2202.1212 1 2 2. 0. prestito (b) minuendo 73.6171 - 59.1851 = 15.4320 sottraendo differenza A.S.E.
Moltiplicazione Moltiplicazione di due digit b b Può essere espressa i modo tabellare Sistema binario Sistema ternario b 1 2 a C=1 b 1 a a x b a x b A.S.E.
Moltiplicazione binaria Prodotto di due bit X * Y P = Prodotto Esempio x y P 1 1 0. 1. moltiplicando moltiplicatore 2.75 * 5 = 13.75 Prodotti parziali prodotto A.S.E.
Moltiplicazione ternaria x y P C 1 2 Prodotto di due digit X x Y P = Prodotto C = Carry Esempio 2 1 moltiplicando moltiplicatore 65 * 11 = 715 Prodotti parziali prodotto A.S.E.
Divisione binaria Operazione divisione si effettua con moltiplicazioni e sottrazioni multiple Divisione binaria: dividendo 1 0. - divisore quoziente resto A.S.E.
Divisione Ternaria Esempio 2 1 -1 A.S.E. divisore dividendo quoziente 1 -1 quoziente resto A.S.E.
Conversione di base Un numero è un insieme di simboli o cifre che rappresentano una certa quantità la rappresentazione di un numero è relativa alla base di rappresentazione utilizzata Una numero può essere espresso in qualunque base di rappresentazione esistono diverse rappresentazioni di uno stesso valore (numero) Un intero espresso in base a è un intero anche in base b Un numero frazionario espresso in base a è un numero frazionario anche in base b Esistono due tecniche di conversione da una base ad un’altra (a b): metodo polinomiale (le operazioni si fanno nella base d’arrivo) metodo iterativo (le operazioni si fanno nella base di partenza) A.S.E.
Metodo polinomiale Il numero “N” espresso in base “a” ha la forma: In base a = 10 si ha: In base “b” il numero “N” risulta espresso da: Calcolando il risultato di questo polinomio in aritmetica in base b, i può completare la conversione: A.S.E.
Esempio 1 Convertire 1101 in base 2 nell’equivalente in base 10 A.S.E.
Esempio 2 Convertire il numero binario 101.011 nell’equivalente in base 10 Convertire il numero ternario 201.1 nell’equivalente in base 10 A.S.E.
Esempio 3 Convertire il numero esadecimale D3F nell’equivalente in base 10 Osservazione: il metodo polinomiale è conveniente per la conversione da una generica base a alla base 10 A.S.E.
Esempio 4 (numeri frazionari) Conversione da base a a base 10 Rappresentazione polinomiale del numero in base a: Esempio : convertire il numero binario 1101.101 in base 10: A.S.E.
Metodo iterativo (numeri interi) Tecnica delle divisioni successive Si basa sul teorema della divisione con resto; Dividendo un numero per la sua base, il resto della divisione intera è l’ultima cifra della sua rappresentazione in tale base A.S.E.
Esempio 1 Convertire il numero 52 in base 10 nell’equivalente in base 2 Quindi: 52 2 26 13 1 6 2 0 3 1 A.S.E.
Esempio 2 Convertire il numero 58506 in base 10 nell’equivalente in base 16 Quindi 58506 16 10 3656 (A) 8 228 (8) 4 14 (4) (E) A.S.E.
Esempio 3 Convertire il numero 58506 in base 10 nell’equivalente in base 8 Quindi 58506 8 2 7313 1 914 2 114 14 6 A.S.E.
Osservazione Il metodo iterativo utilizza l’aritmetica della base di partenza è particolarmente conveniente per la conversione da base 10 ad una generica base b diversa da 10 A.S.E.
Metodo iterativo (numeri frazionari) Conversione da base 10 a base b La parte intera procedimento prima visto Per la parte frazionaria in base b si ha Moltiplicando per la base si ha La conversione può non avere fine, si arresta una volta raggiunta la precisione desiderata (con un certo numero di cifre decimali) A.S.E.
Esempio Conversione da base 10 a base 16 A.S.E.
Errore di Conversione Avendo arrestato la conversione al quarto passaggio si commette un errore di conversione L’entità dell’errore si può valutare convertendo di nuovo il risultato ottenuto in base 10 e valutando la differenza rispetto al numero di partenza (in aritmetica decimale) A.S.E.
Osservazione È vera la seguente uguaglianza: Quindi, per convertire dalla base a alla base b un numero frazionario lo si può moltiplicare per , il cui risultato è un numero intero, convertibile con il metodo delle divisioni successive, e quindi si deve dividere (in base b) il risultato ottenuto per Dualmente, si può anche considerare: OSS1: m’ potrebbe anche essere diverso da m; OSS2: la divisione in base b diventa adesso uno spostamento della posizione della virgola, dato che A.S.E.
Esempio 1 Convertire il numero 61.25 da base 10 a base 8 m = 2, si moltiplica per 102 =100 e si eseguono le divisioni successive in base 10: Il risultato si divide per 102(10) = 144(8), quindi risulta: N = 13755 / 144 = 75.2 N.B.: la divisione è eseguita in base 8! 6125 8 5 765 95 7 11 3 1 A.S.E.
Esempio 2 Convertire il numero 61.25 da base 10 a base 8 si moltiplica per 82 = 64 in base 10, e si eseguono le divisioni successive per 8 in base 10 (8(10)) il risultato si divide per 82(10) = 100(8), quindi risulta N(8) = 7520 / 100 = 75.2 N.B.: la divisione è fatta in base 8 (ma ora ha complessità nulla!) 3920 8 490 2 61 5 7 A.S.E.
Conclusioni Aritmetica binaria Conversione da base “N” a base 10 Conversione da base 10 a base “N” A.S.E.