Rappresentazione dell’Informazione Corso di Laurea in Ingegneria Civile Prof. Dario Bianchi Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dell’Informazione In un calcolatore vogliamo rappresentare vari tipi di informazioni: Numeri reali Numeri interi Testi Grafici Disegni Fotografie Filmati Suoni Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dell’Informazione L’informazione può essere rappresentata in due forme: – Analogica – Digitale Nella forma analogica una grandezza è rappresentata in modo continuo. Nella forma digitale una grandezza è rappresentata in modo discreto. La gran parte delle grandezze fisiche sono di tipo continuo (ad esempio unsegnale acustico). Tuttavia alcuni tipi di informazioni “artificiali” sono di tipo discreto (ad esempio un testo scritto). Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dell’Informazione Per elaborare delle grandezze di tipo continuo con un calcolatore, bisogna utilizzare una sua rappresentazione digitale. La rappresentazione digitale é una approssimazione della rappresentazione analogica. L’errore di approssimazione dipende dalla precisione della rappresentazione digitale. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dell’Informazione Internamente ad un elaboratore ogni informazione è rappresentata da una sequenza di bit (cifre binarie) Una sequenza di bit non dice puo ` rappresentare entita` diverse: Ad esempio la sequenza di cifre binarie: 01000001 puo’ rappresentare: – l’intero 65 – il carattere A – il valore di un segnale musicale – il codice del colore di un punto sullo schermo Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Codici Un codice é un sistema di simboli atto a rappresentare una informazione di qualsiasi genere (caratteri, numeri, etc.). Ogni simbolo é messo in corrispondenza biunivoca con una entitá che si vuole rappresentare. Un codice binario usa come simboli le cifre binarie “0” e “1”. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Sistemi Numerici Un numero N puó essere rappresentato come una sequenza di cifre: N=dn-1dn-2 d1d0 • d-1d-2 d-m corrispondente a: N=dn-1•rn-1+dn-2•rn-2+ +d0•ro + d-1•r-1+ +d-m•r-m dove: d = cifra r = base n = numero cifre parte intera m = numero cifre parte decimale Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Sistemi Numerici Sistema Decimale R=10, d=0,1,2,3,4,5,6,7,8,9 N=dn-1•10n-1+dn-2•10n-2+ +d0+ d-1•10-1+d-m•10-m Esempio: 123.45=1•102+2•101+3•100 +4•10-1+5•10-2 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Sistemi Numerici Sistema Binario R=2, d=0,1 N=dn-1•2n-1+dn-2•2n-2+ +d0•20+ d-1•2-1+d-m•2-m Esempio: 101.012 = 1•22+0•21+1•20 +0•2-1+1•2-2 = 5.2510 La cifra binaria é detta “bit” (binary digit – pezzo, pezzetto: cioé l’unitá più piccola di informazione). E’ il sistema usato nei calcolatori. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Sistemi Numerici Sistema Ottale R=8, d=0,1,2,3,4,5,6,7 N=dn-1•8n-1+dn-2•8n-2+ +d0•80+ d-1•8-1+d-m•8-m Esempio: 1278 = 1•82+2•81+7•80 = 8710 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Sistemi Numerici Sistema Esadecimale (Base 16,indicato anche con H) R=16, d=0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F N=dn-1•16n-1+dn-2•16n-2+ +d0•160+ d-1•18-1+d-m•16-m Esempio: A1H = A116 = 10•161+1•100 = 16110 Per avere 16 simboli distinti bisogna aggiungere: AH=10 CH=12 EH=14 BH=11 DH=13 FH=15 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Conversione dalla base 10 ad una base qualsiasi: parte intera Conversioni di Base Conversione dalla base 10 ad una base qualsiasi: parte intera N=d0•r0+d1•r1+d2•r2+ +dn-1•rn-1 N=d0+r(d1+r(d2(… +dn-1))) Quindi dividendo N per la base r si ottiene come quoziente d1+r(d2(… +dn-1)) e come (resto d0 la cifra meno significativa). Dividendo ancora il quoziente per la base si ottiene la cifra di peso 1 e così via fino ad avere un quoziente 0 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Esempio di conversione dalla base 10 alla base 2: parte intera Conversioni di Base Esempio di conversione dalla base 10 alla base 2: parte intera 11510 = 11100112 115 1 2 57 1 2 28 0 2 14 0 2 2 7 1 d0 2 3 1 d1 2 d2 1 d3 d4 d5 d6 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Conversione dalla base 10 alla base 2: Conversioni di Base Conversione dalla base 10 alla base 2: parte frazionaria N=d-1•2-1+d-2•2-2+ +d-m•2-m Se moltiplichiamo N per la base 2 otteniamo per la parte intera d-1. Moltiplicando ancora per 2 la parte frazionaria otteniamo come parte intera d-2 etc. Il risultato termina quando il risultato della moltiplicazione e’ esattamente 1 o quando si é raggiunta la precisione voluta (una rappresentazione puo’ essere finita in una base e infinita in un’altra). Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Esempio di conversione dalla base 10 alla base 2: parte frazionaria Conversioni di Base Esempio di conversione dalla base 10 alla base 2: parte frazionaria 0.625 × 2 1.250 × 2 0.62510 = 0.1012 d-1 0.500 × 2 d-2 1.000 × 2 d-3 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Conversioni di Base Esempio di conversione dalla base 10 alla base 2: parte intera e frazionaria Per convertire un numero che ha parte intera e parte frazionaria si effettuano le conversioni separatamente. Esempio: 11510 = 11100112 0.62510 = 0.1012 115.62510 = 1110011.1012 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Conversione fra le basi 8 o 16 e la base 2: Conversioni di Base Conversione fra le basi 8 o 16 e la base 2: Le notazioni in base 8 e 16 possono essere pensate come delle abbrevviazioni della notazione in base 2. Ogni cifra ottale corrisponde a 3 cifre binarie: 101 110 0012 = 5618 Ogni cifra esadecimale corrisponde a 4 cifre binarie: 1 0111 00012 = 17116 (0001 0111 00012 = 17116) Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Operazioni sui numeri binari Come per I numeri decimali ma con le seguentui tabelle: Somma: Prodotto: + 1 10 × 1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Operazioni sui numeri binari Somma: 0+0=0 0+1=1 1+0=1 1+1=0 con riporto 1 (210) 1+1+1=1 con riporto 1 (310) + 1 10 111 riporto 10110+ 11101 110011 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Operazioni sui numeri binari Sottrazione: 0-0=0 1-0=1 1-1=0 0-1=1 con un prestito dal bit piu’ a sinistra. + 1 10 riporto 1110- 0101 110011 riporto 1100 1001 0011 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Operazioni sui numeri binari Prodotto: 1011 1101 1011+ 0000- 01011+ 1011-- 110111+ 1011--- 10001111 × 1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Operazioni sui numeri binari Divisione: 101101 11 00 01111 101 011 11 100 00 × 1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione degli interi positivi Quante cifre sono necessarie per rappresentare in numero X in base 2 ? Se usiamo k bit abbiamo 2k configurazioni possibili. Possiamo quindi rappresentare i numeri compresi fra 0 e 2k-1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione degli interi positivi Tutti I numeri x con 2k-1 - 1 < x ≤ 2k - 1 richiedono k bit per essere rappresentati Anche 2k-1 < x + 1 ≤ 2k K-1 < ≤ k Quindi per rappresentare il numero x occorrono k bit con k= |¯log2(x+1) ¯| Cioé l’intero immediatamente superiore a log2(x+1) Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione degli interi positivi Il risultato vale anche per una generica base r k= |¯logr(x+1) ¯| Se B e’ il numero di cifre binarie che serve a rappresentare il numero x e D é il numero di cifre necessarie sempre per rappresentare x B/D=|¯log2(x+1) ¯| / |¯log10(x+1) ¯| = |¯log10(x+1) / log10(2) ¯| /( |¯log10(x+1) ¯| ~3.3 Occorrono all’incirca 10 cifre binarie per rappresentare 3 cifre decimali. Si usano queste abbrevviazioni: Kilo = 210 = 1024 ~ 1000 Mega = 220 = 1.048.576 ~ 1.000.000 Giga = 230 = ……… ~ 1.000.000.000 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dei numeri nei calcolatori La rappresentazione naturale dei numeri interi é quella binaria. La memoria é organizzata in celle (“parole”) con un numero fisso di bit (ad esempio 8). Corrisponde a 1 • 64 + 1 • 16 + 1 • 8 +1 Usando 8 cifre binaerie (bit) possiamo rapprtesentare I numeri compresi fra 0 e 28-1 = 255 1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dei numeri nei calcolatori L’uso un numero finito di cifre porta ad una aritmetica modulare. Pensiamo a degli incrementiunitari. 0000000 (0) 0000001 (1) 0000010 (2) ……….. 1111111 (255) (1)0000000 (256 -> 0) Quando si raggiunge il numero 255 (tutti 1) non potendo rappresentare il 256 che richiederebbe 9 bit si torna allo 0. Si ha quindi una aritmetica modulo 256. In generale se si usano parole di k bit si ha una aritmetica modulo k. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione degli interi relativi Disponendo di k bit si possono avere 2k configurazioni diverse. Metá devono essre usate per I numeri positivi, l’ altra metá per quelli negativi. Ci sono due possibili rappresentazioni: in modulo e segno in complemento a 2 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione degli interi relativi in modulo e segno Il bit più significativo viene usato per rappresentare il il segno: 0 per i numeri positivi 1 per quelli negativi Le cifre restanti rappresentano il modulo +510 ->000001012 -1010->100010102 Lo zero ha due rappresentazioni: (+0) 00000000 e (-0) 10000000 modulo segno Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione degli interi relativi in modulo e segno Algoritmo di somma: Confrontare I bit di segno dei due numeri Se sono uguali: Somma i moduli Assegna come bit di segno del risultato il bit di segno degli operandi Altrimenti: Confronta i valori assoluti dei due numeri Assegna come bit di segno del risultato quello dell’operando con modulo maggiore Sottari i moduli nell’ordine giusto Macchinoso!! (Analoga la sottrazione). Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Complemento Complemento alla base: Dato un numero x di base r e di k cifre é definito come rk - x Complemento alla base -1: rk -1- x Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Complemento Complemento a 2: 2k – x Es: x= 01010110 k=8 100000000 - 01010110 = 010101010 Complemento a 1: 2k -1- x 11111111 - 10101001 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Complemento Complemento a 1: 2k -1- x Lo si ottirne semplicemete scambiando 0 con 1 e 1 con 0 Es: x= 01010110 k=8 01010110 x 10101001 complemento di x Complemento a 2: 2k – x Si fa il complemento ad 1 di x e gli si somma 1 01010110 x 10101001 + complemento a 1 1 = sommo 1 10101010 complemento a 2 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dei numeri negativi in complemento a 2 Supponiamo di avere una cella di k bit I numeri positivi vengono rappresentati dal loro modulo e hanno il bit piu’ significativo (segno) = 0 I numeri negativi vengono rappresentati facendo il complemento a due del corrispondente numero positivo. Hanno il bit piu’ significativo (segno) = 1 Si rappresentano come positivi i numeri da 0 a 2k-1-1 Si rappresentano come negativi i numero che vanno da -2k-1 a -1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dei numeri negativi in complemento a 2 01111111 +127 01111110 +126 00000010 +2 00000001 +1 00000000 0 11111111 -1 11111110 -2 10000001 -127 10000000 -128 Supponendo una cella di 8 bit (k=8, 2k=256) 2k-1-1 = 127 -2k-1 = -128 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dei numeri negativi in complemento a 2 Supponiamo di voler calcolare A-B con una cella di k bit. Possiamo calcolare A + (-B) dove –B e’ il complemento a 2 di B dato da 2K-B. Si ottiene A - B = A + (-B) = A + 2K - B in quanto il termine 2K non é rappresentabile in k bit. Per fare una sottrazione possiamo sommare il complemento a 2 del secondo operando Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dei numeri negativi in complemento a 2 Come possiamo interpretare un numero in complemento a due? Se il bit più significativo (segno) =0 allora il numero é positivo e le sue cifre ci danno il modulo Es: 00110011 = + 51 (32+16+2+1) Se il bit più significativo (segno) =1 allora il numero é negativo e per avere il modulo si deve fare il complemento a 3 Es: 10110011 negativo 01001100+ complemento a 1 1 01001101 complemento a 2 = 77 (64+8+4+1) il numero originale era -77 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dei numeri negativi in complemento a 2 Esempi (supponiamo k=5, possiamo rappresentare I numeri da -16 a + 15): 01001+ +9 00100= +4 01101 +13 11100= -4 100101 +5 (sesto bit eliminato) Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dei numeri negativi in complemento a 2 Esempi (supponiamo k=5, possiamo rappresentare I numeri da -16 a + 15): 10111+ -9 00100= +4 11011 +5 10111+ -9 11100= -4 110011 -13 (sesto bit eliminato) Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dei numeri negativi in complemento a 2 Esempi (supponiamo k=5, possiamo rappresentare I numeri da -16 a + 15): 01001+ +9 01000= +8 10001 OVERFLOW + 17 non e’ rappresentabile con 5 bit 10111+ -9 10111= -9 101110 -13 (sesto bit eliminato) OVERFLOW -18 non e’ rappresentasbile Con 5 bit Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rappresentazione dei numeri negativi in complemento a 2 OVERFLOW (Supero di capacitá) Si ha quando il risultato non é rappresentabile con il numero di bit disponibili. Si ha solo sommando due numeri entrambi positivi o entrambi negativi. In questo caso il segno del risultato risulta opposto a quello degli operandi. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Operazioni di Shift (Scorrimento) 1 Shift a sinistra: moltiplica per 2 1 Shift a destra: divide per 2 1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Numeri reali Rappresentazione in virgola fissa Dobbiamo supporre di utilizzare n bit per la parte intera e m bit per la parte frazionaria: xxxxx.xxx Il numero 11000101 Corrisponderebbe (usando le ultime tre cifre come parte frazionaria) a: 1•24 + 1•23 + 1•2-1 + 1•2-3 = 24.625 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Numeri reali Rappresentazione in virgola fissa La rappresentazione in virgola fissa limita fortemente l’intervallo numerico utilizzabile. Possiamo infatti rappresentare numeri da 2-3=0.125 a 25=31 Il numero di cifre significative dipende dal suo valore assoluto: 10011.101 = 19.625 ha 8 cifre significative Anche 1001.1101 =9.81125 ha 8 cifre significative Ma nella rappresentazione in virgola fissa diventerebbe: 01001.110=9.75 con notevole perdita di precisione. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Numeri reali Rappresentazione in virgola mobile (Floating point) Notazione esponenziale 125000000000 pio’ essere scritto come 1.25 • 1011 Anche nella notazione binaria possiamo dire 10010.101 = 1.0010101 • 24 .010010101 = 1.0010101 • 2-2 In questo caso la precisione del numero non dipende dal suo valore assoluto. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Numeri reali Rappresentazione in virgola mobile (Floating point) Semplice precisione: 1 bit segno mantissa 1 bit segno esp[onente 23 bit modulo mantissa 7 bit modulo esponente La mantissa consente una precisione 23/3.3 cifre decimali. L’esponente puó variare da -127 a +127 ed il range di un numero floating point é fra 2-127 e 2+127. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Numeri reali Rappresentazione in virgola mobile (Floating point) Semplice precisione: 1 bit segno mantissa 1 bit segno esp[onente 23 bit modulo mantissa 7 bit modulo esponente La mantissa consente una precisione 23/3.3 cifre decimali. L’esponente puó variare da -127 a +127 ed il range di un numero floating point é fra 2-127 e 2+127. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Precisione Interi “corti” 16 bit = 2 byte da ~ -32.000 a ~ + 32000 “lunghi” 32 bit =4 byte da ~ -2000.000.000 a ~ + 2000.000.000 Floating point Semplice precisione 32 bit = 4 byte Doppia precisione 64 bit = 8 byte Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Operazioni sui numeri Floating Point Moltiplicazione (divisione): Si moltipliclano (o si dividono) le mantisse Si sommano (o si sottraggono) gli esponenti Condizione di errore OVERFLOW: si ha un esponente (positivo) troppo grande (1.15•290•1.99•285) UNDERFLOW: si ha un esponente (negativo) troppo piccolo (1.15•2-90•1.99•2-85) Divisione per Zeri: operazione non ammessa. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Operazioni sui numeri Floating Point Addizione e sottrazione: Bisogna prima allineare I due operandi: Es: 0.4356 • 10-4 + 0.5137 • 10-2 = 0.0043 • 10-2 + 0.5180 • 10-2 Si puo’ avere una perdita di precisione nell’allineamento dei due numeri (si perdono le cifre meno significative del numero con esponente più piccolo). Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Codici Codice: sistema di simboli che permette la rappresentazione dell’informazione Esempi: Decodifica agevole vs codici compressi Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Definizioni SIMBOLO: entità di cui non si da qui una definizione formale STRINGA: sequenza finita di simboli giustapposti (lunghezza della stringa, stringa vuota) ALFABETO: insieme finito di simboli LINGUAGGIO: insieme di stringhe di simboli tratti da un alfabeto Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Esempi di alfabeti Alfabeto italiano: {A, B, C, D, …Z} Alfabeto greco: {α, β, γ, δ, ...ω} Alfabeto binario: {0, 1} Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Alfabeto usato dal calcolatore Interruttore (aperto/chiuso) Foro su scheda (aperto/chiuso) Transistor (in conduzione/spento) Tensione (alta/bassa) Dominio di magnetizzazione (/) Riflettività di un’areola (alta/bassa) Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Alfabeto usato dal calcolatore Gli elaboratori utilizzano una logica e un’aritmetica binaria Ai due stati di un dispositivo vengono associati i due simboli 0 e 1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Codifica dei simboli E’ necessario determinare delle regole di corrispondenza, dette codifiche La codifica mette in corrispondenza (biunivoca) ogni simbolo appartenente all’alfabeto più ricco con una stringa di simboli appartenente all’alfabeto più ridotto. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Codifica Problema: codificare i simboli dell’alfabeto A utilizzando stringhe del linguaggio L, con A qualsiasi e L={ stringhe di N bit } Cardinalità C dell’alfabeto A: numero di elementi di A Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Codifiche ridondanti Codifiche ridondanti Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Distanza di Hamming E’ definita come il minimo numero di bit di cui differiscono due parole qualsiasi del codice se N=M si ha che H=1 se c’è ridondanza, H1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Rilevazione e correzione di errori La ridondanza può servire per rilevare o correggere errori nel codice Num di errori rilevati: R = H-1 Num di errori corretti: Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Esempio di codifica ridondante Parità: si ottiene dal codice non ridondante aggiungendo un simbolo in modo che il numero di ‘1’ sia pari (parità pari) o dispari (parità dispari). Avendo H=2 può solo rilevare un errore Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Codice BCD BCD: Binary Coded Decimal Simbolo: Codifica: Con Parita`: 0 0000 00000 1 0001 00011 2 0010 00101 3 0011 00110 4 0100 01001 … 8 1000 10001 9 1001 10010 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Codici autocorrettivi Per avere la possibilita’ di correggere bisogna avere una distanza di Hamming H>=2 Esempio (Non realistico: in realta` la ridondanza puo’ essere piu’ bassa) Codici: 0 000 1111 (H=3) {001,010,100} sono codici errati 0 {110,101,011} sono codici errati 1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Codice ASCII American Standard Code for Information Interchange 7 bit quindi 128 simboli diversi ASCII esteso (8bit) diverse estensioni in dipendenza dal paese oppure aggiunge la parità Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile ALGEBRA BOOLEANA Boole matematico inglese (XIX secolo) La sua algebra viene utilizzata solo dall’inizio del XX secolo (primi sistemi di calcolo) Si basa su due soli stati: acceso (ON) spento (OFF) Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Variabili booleane Le variabili possono assumere solo due valori: 0 e 1 Si chiamano Variabili logiche o booleane Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Funzioni booleane Usando le variabili booleane, si possono costruire le funzioni booleane F(x,y,z) che possono assumere solo due stati: true false Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Tabella della verità Ogni funzione booleana è caratterizzata dalla propria tabella della verità x y z F 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Funzioni booleane Funzioni completamente specificate: se per tutte le combinazioni delle variabili il suo valore è determinato Esempio: uno studente può chiedere la tesi solo se ha superato tutti gli esami ed è regolarmente iscritto Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Funzioni booleane Funzioni non completamente specificate: se a una o più combinazioni delle sue variabili non corrisponde alcun valore della funzione Esempio: uno studente si laurea solo se ha superato tutti gli esami e ha svolto la tesi Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Costanti booleane Oltre alle variabili vi sono anche le costanti Essendo l’Algebra Booleana definita su due soli simboli, esistono solo due costanti: 1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Operatori logici Tra le variabili e le costanti possono intervenire delle relazioni Le relazioni si esprimono utilizzando gli operatori logici Definiti insieme agli operatori logici, i postulati definiscono il loro comportamento Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Tipi di operatori Esistono due tipi di operatori, in dipendenza dal numero di variabili che utilizzano: monadici diadici Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile L’operatore NOT Il risultato è il complemento dell’unica variabile x NOT x 0 1 1 0 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile L’operatore AND Il risultato è vero solo se sono vere entrambe le variabili a b a AND b 0 0 0 0 1 0 1 0 0 1 1 1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile L’operatore OR Il risultato è vero solo se è vera almeno una delle variabili a b a OR b 0 0 0 0 1 1 1 0 1 1 1 1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile L’operatore XOR Il risultato è vero solo se è vera solo una delle due variabili a b a XOR b 0 0 0 0 1 1 1 0 1 1 1 0 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Operatori - nomenclatura NOT: inversione ( ¯ ) AND: prodotto logico ( · ) OR: somma logica ( + ) XOR: or esclusivo ( ) Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Operatori universali Con gli operatori NOT, OR, AND, XOR si possono costruire tutte le funzioni booleane Esistono due operatori (NAND, NOR) che permettono la sintesi di qualsiasi funzione, utilizzando un unico tipo di operatori Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile L’operatore NAND Il risultato è vero solo se è falso l’AND tra le due variabili a b a NAND b 0 0 1 0 1 1 1 0 1 1 1 0 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile L’operatore NOR Il risultato è vero solo se è falso l’OR tra le due variabili a b a NOR b 0 0 1 0 1 0 1 0 0 1 1 0 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Espressioni logiche Un insieme di variabili e/o costanti booleane a cui siano applicati gli operatori logici si dice espressione booleana o logica Una espressione logica rappresenta una funzione logica: ad esempio: Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Precedenze tra operatori Le precedenze sono simili al + e al x dell’algebra consueta: priorità alta x priorità bassa + Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Proprietà dell’algebra booleana X·0 = 0 X+1 = 1 X·1 = X X+0 = X X·X = X X+X = X idempotenza X·X = 0 X+X = 1 complementazione X·Y = Y·X X+Y = Y+X commutativa X·(X+Y) = X X+(X·Y) = X assorbimento X·(X+Y) = X ·Y X+(X·Y) = X+Y assorbimento X·(Y+Z) = X·Y+X·Z X+(Y·Z) = (X+Y)·(X+Z) distributiva Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Proprietà dell’algebra booleana X·(Y·Z) = (X·Y) ·Z = X·Y·Z X+(Y+Z) = (X+Y)+Z = X+Y+Z associativa ( X ) = X X·Y = X + Y X+Y = X ·Y De Morgan Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Proprietà operatori universali NOR () NAND () X 1 = 0 X 0 = 1 X 0 = X X 1 = X X X = X X X = X X Y = X·Y X Y = X+Y X Y = X+Y X Y = X·Y Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Sommattore xn yn c n-1 x1 y1 c0 x0 y0 c0 cn rn c1 r1 c0 r0 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Sommatore xi yi ci-1 ri ci 1 ri = (xi yi) ci-1 ci = ci-1 (xiyi) + xiyi Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Reti logiche Reti combinatorie: le uscite dipendono solo dagli ingressi Reti sequenziali: le uscite dipendono dagli ingressi e dalle uscite precedenti (Effetti di memoria: latch, flip-flop) Dario Bianchi - 2003 Fond. Informatica - Ing. Civile
Fond. Informatica - Ing. Civile Latch RS Q = stato precedente Q’=Stato successivo R S Q Q’ 1 - Q r Q s Dario Bianchi - 2003 Fond. Informatica - Ing. Civile