La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Dario Bianchi - 2003Fond. Informatica - Ing. Civile Rappresentazione dell’Informazione Corso di Laurea in Ingegneria Civile Prof. Dario Bianchi.

Presentazioni simili


Presentazione sul tema: "Dario Bianchi - 2003Fond. Informatica - Ing. Civile Rappresentazione dell’Informazione Corso di Laurea in Ingegneria Civile Prof. Dario Bianchi."— Transcript della presentazione:

1 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Rappresentazione dell’Informazione Corso di Laurea in Ingegneria Civile Prof. Dario Bianchi

2 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Rappresentazione dell’Informazione Numeri reali Numeri interi Testi Grafici Disegni Fotografie Filmati Suoni In un calcolatore vogliamo rappresentare vari tipi di informazioni:

3 Dario Bianchi - 2003Fond. 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).

4 Dario Bianchi - 2003Fond. Informatica - Ing. Civile 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. Rappresentazione dell’Informazione

5 Dario Bianchi - 2003Fond. Informatica - Ing. Civile 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 Rappresentazione dell’Informazione

6 Dario Bianchi - 2003Fond. 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”.

7 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Sistemi Numerici Un numero N puó essere rappresentato come una sequenza di cifre: N=d n-1 d n-2 d 1 d 0 d -1 d -2 d -m corrispondente a: N=d n-1 r n-1 +d n-2 r n-2 + +d 0 r o + d -1 r -1 + +d -m r -m dove: d = cifra r = base n = numero cifre parte intera m = numero cifre parte decimale

8 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Sistemi Numerici Sistema Decimale R=10, d=0,1,2,3,4,5,6,7,8,9 N=d n-1 10 n-1 +d n-2 10 n-2 + +d 0 + d -1 10 -1 +d -m 10 -m Esempio: 123.45=110 2 +210 1 +310 0 +410 -1 +510 -2

9 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Sistemi Numerici Sistema Binario R=2, d=0,1 N=d n-1 2 n-1 +d n-2 2 n-2 + +d 0 2 0 + d -1 2 -1 +d -m 2 -m Esempio: 101.01 2 = 12 2 +02 1 +12 0 +02 -1 +12 -2 = 5.25 10 La cifra binaria é detta “bit” (binary digit – pezzo, pezzetto: cioé l’unitá più piccola di informazione). E’ il sistema usato nei calcolatori.

10 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Sistemi Numerici Sistema Ottale R=8, d=0,1,2,3,4,5,6,7 N=d n-1 8 n-1 +d n-2 8 n-2 + +d 0 8 0 + d -1 8 -1 +d -m 8 -m Esempio: 127 8 = 18 2 +28 1 +78 0 = 87 10

11 Dario Bianchi - 2003Fond. 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=d n-1 16 n-1 +d n-2 16 n-2 + +d 0 16 0 + d -1 18 -1 +d -m 16 -m Esempio: A1 H = A1 16 = 1016 1 +110 0 = 161 10 Per avere 16 simboli distinti bisogna aggiungere: A H =10 C H =12 E H =14 B H =11 D H =13 F H =15

12 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Conversioni di Base Conversione dalla base 10 ad una base qualsiasi: parte intera N=d 0 r 0 +d 1 r 1 +d 2 r 2 + +d n-1 r n-1 N=d 0 +r(d 1 +r(d 2 (… +d n-1 ))) Quindi dividendo N per la base r si ottiene come quoziente d 1 +r(d 2 (… +d n-1 )) e come (resto d 0 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

13 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Conversioni di Base 115 10 = 1110011 2 Esempio di conversione dalla base 10 alla base 2: parte intera 115 1 2 2 28 0 57 1 2 2 14 0 7 1 2 3 1 2 2 0 d0d0 d1d1 d2d2 d3d3 d4d4 d5d5 d6d6

14 Dario Bianchi - 2003Fond. Informatica - Ing. Civile 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).

15 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Conversioni di Base Esempio di conversione dalla base 10 alla base 2: parte frazionaria 0.625 × 2 1.250 × 2 0.500 × 2 1.000 × 2 d -1 d -2 d -3 0.625 10 = 0.101 2

16 Dario Bianchi - 2003Fond. 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: 115 10 = 1110011 2 0.625 10 = 0.101 2 115.625 10 = 1110011.101 2

17 Dario Bianchi - 2003Fond. Informatica - Ing. Civile 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 001 2 = 561 8 Ogni cifra esadecimale corrisponde a 4 cifre binarie: 1 0111 0001 2 = 171 16 (0001 0111 0001 2 = 171 16 )

18 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Operazioni sui numeri binari Come per I numeri decimali ma con le seguentui tabelle: Somma:Prodotto: +01 001 1110 ×01 000 101

19 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Operazioni sui numeri binari Somma: 0+0=0 0+1=1 1+0=1 1+1=0 con riporto 1 (2 10 ) 1+1+1=1 con riporto 1 (3 10 ) +01 001 1110 111riporto 10110+ 11101 110011

20 Dario Bianchi - 2003Fond. 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. +01 001 1110 riporto 1110- 0101 110011 riporto 1100 1001 0011

21 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Operazioni sui numeri binari Prodotto: ×01 000 101 1011 1101 1011+ 0000- 01011+ 1011-- 110111+ 1011--- 10001111

22 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Operazioni sui numeri binari Divisione: ×01 000 101 101101 11 00 01111 101 011 101 11 100 11 011 11 00

23 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Rappresentazione degli interi positivi Quante cifre sono necessarie per rappresentare in numero X in base 2 ? –Se usiamo k bit abbiamo 2 k configurazioni possibili. –Possiamo quindi rappresentare i numeri compresi fra 0 e 2 k -1

24 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Rappresentazione degli interi positivi Tutti I numeri x con 2 k-1 - 1 < x ≤ 2 k - 1 richiedono k bit per essere rappresentati Anche 2 k-1 < x + 1 ≤ 2 k K-1 < ≤ k Quindi per rappresentare il numero x occorrono k bit con k= |¯log 2 (x+1) ¯| Cioé l’intero immediatamente superiore a log 2 (x+1)

25 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Rappresentazione degli interi positivi Il risultato vale anche per una generica base r k= |¯log r (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=|¯log 2 (x+1) ¯| / |¯log 10 (x+1) ¯| = |¯log 10 (x+1) / log 10 (2) ¯| /( |¯log 10 (x+1) ¯| ~3.3 Occorrono all’incirca 10 cifre binarie per rappresentare 3 cifre decimali. Si usano queste abbrevviazioni: –Kilo = 2 10 = 1024 ~ 1000 –Mega = 2 20 = 1.048.576 ~ 1.000.000 –Giga = 2 30 = ……… ~ 1.000.000.000

26 Dario Bianchi - 2003Fond. 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 2 8 -1 = 255 01011001

27 Dario Bianchi - 2003Fond. 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) 0000001 (1) ……….. 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.

28 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Rappresentazione degli interi relativi Disponendo di k bit si possono avere 2 k 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

29 Dario Bianchi - 2003Fond. 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 +5 10 ->00000101 2 -10 10 ->10001010 2 Lo zero ha due rappresentazioni: (+0) 00000000 e (-0) 10000000 segnomodulo

30 Dario Bianchi - 2003Fond. 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).

31 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Complemento Complemento alla base: –Dato un numero x di base r e di k cifre é definito come r k - x Complemento alla base -1: r k -1- x

32 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Complemento Complemento a 2: 2 k – x –Es: x= 01010110 k=8 100000000 - 01010110 = 010101010 Complemento a 1: 2 k -1- x –Es: x= 01010110 k=8 11111111 - 01010110 = 10101001

33 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Complemento Complemento a 1: 2 k -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: 2 k – x –Si fa il complemento ad 1 di x e gli si somma 1 –Es: x= 01010110 k=8 01010110 x 10101001 + complemento a 1 1 = sommo 1 10101010 complemento a 2

34 Dario Bianchi - 2003Fond. 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 2 k-1 -1 Si rappresentano come negativi i numero che vanno da -2 k-1 a -1

35 Dario Bianchi - 2003Fond. 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, 2 k =256) 2 k-1 -1 = 127 -2 k-1 = -128

36 Dario Bianchi - 2003Fond. 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 2 K -B. Si ottiene A - B = A + (-B) = A + 2 K - B in quanto il termine 2 K non é rappresentabile in k bit. Per fare una sottrazione possiamo sommare il complemento a 2 del secondo operando

37 Dario Bianchi - 2003Fond. 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

38 Dario Bianchi - 2003Fond. 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 01001+ +9 11100= -4 100101 +5 (sesto bit eliminato)

39 Dario Bianchi - 2003Fond. 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)

40 Dario Bianchi - 2003Fond. 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

41 Dario Bianchi - 2003Fond. 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.

42 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Operazioni di Shift (Scorrimento) Shift a sinistra: moltiplica per 2 00110011 01100110 00011001 0 0 Shift a destra: divide per 2

43 Dario Bianchi - 2003Fond. 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: 12 4 + 12 3 + 12 -1 + 12 -3 = 24.625

44 Dario Bianchi - 2003Fond. 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 2 5 =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.

45 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Numeri reali Rappresentazione in virgola mobile (Floating point) Notazione esponenziale 125000000000 pio’ essere scritto come 1.25 10 11 Anche nella notazione binaria possiamo dire 10010.101 = 1.0010101 2 4.010010101 = 1.0010101 2 -2 In questo caso la precisione del numero non dipende dal suo valore assoluto.

46 Dario Bianchi - 2003Fond. 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.

47 Dario Bianchi - 2003Fond. 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.

48 Dario Bianchi - 2003Fond. 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

49 Dario Bianchi - 2003Fond. 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.152 90 1.992 85 ) –UNDERFLOW: si ha un esponente (negativo) troppo piccolo (1.152 -90 1.992 -85) –Divisione per Zeri: operazione non ammessa.

50 Dario Bianchi - 2003Fond. 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.5137 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).

51 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Codici Codice: sistema di simboli che permette la rappresentazione dell’informazione Esempi:    Decodifica agevole vs codici compressi

52 Dario Bianchi - 2003Fond. 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

53 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Esempi di alfabeti Alfabeto italiano: {A, B, C, D, …Z} Alfabeto greco: {α, β, γ, δ,...ω} Alfabeto binario: {0, 1}

54 Dario Bianchi - 2003Fond. 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)

55 Dario Bianchi - 2003Fond. 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

56 Dario Bianchi - 2003Fond. 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.

57 Dario Bianchi - 2003Fond. 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

58 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Codifiche ridondanti

59 Dario Bianchi - 2003Fond. 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, H  1

60 Dario Bianchi - 2003Fond. 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:

61 Dario Bianchi - 2003Fond. 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

62 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Codice BCD BCD: Binary Coded Decimal Simbolo: Codifica: Con Parita`: 0000000000 1000100011 2001000101 3001100110 4010001001 … 8100010001 9100110010

63 Dario Bianchi - 2003Fond. 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 1  111 (H=3) {001,010,100} sono codici errati  0 {110,101,011} sono codici errati  1

64 Dario Bianchi - 2003Fond. 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à

65 Dario Bianchi - 2003Fond. 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)

66 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Variabili booleane Le variabili possono assumere solo due valori: 0 e 1 Si chiamano Variabili logiche o booleane

67 Dario Bianchi - 2003Fond. 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

68 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Tabella della verità Ogni funzione booleana è caratterizzata dalla propria tabella della verità xyzF 0001 0010 0101 0111 1000 1011 1100 1110

69 Dario Bianchi - 2003Fond. 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

70 Dario Bianchi - 2003Fond. 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

71 Dario Bianchi - 2003Fond. 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: –0 –1

72 Dario Bianchi - 2003Fond. 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

73 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Tipi di operatori Esistono due tipi di operatori, in dipendenza dal numero di variabili che utilizzano: –monadici –diadici

74 Dario Bianchi - 2003Fond. Informatica - Ing. Civile L’operatore NOT Il risultato è il complemento dell’unica variabile x NOT x 0 1 1 0

75 Dario Bianchi - 2003Fond. Informatica - Ing. Civile L’operatore AND Il risultato è vero solo se sono vere entrambe le variabili aba AND b 00 0 01 0 10 0 11 1

76 Dario Bianchi - 2003Fond. Informatica - Ing. Civile L’operatore OR Il risultato è vero solo se è vera almeno una delle variabili ab a OR b 00 0 01 1 10 1 11 1

77 Dario Bianchi - 2003Fond. Informatica - Ing. Civile L’operatore XOR Il risultato è vero solo se è vera solo una delle due variabili aba XOR b 00 0 01 1 10 1 11 0

78 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Operatori - nomenclatura NOT:inversione( ¯ ) AND: prodotto logico( · ) OR:somma logica( + ) XOR:or esclusivo(  )

79 Dario Bianchi - 2003Fond. 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

80 Dario Bianchi - 2003Fond. Informatica - Ing. Civile L’operatore NAND Il risultato è vero solo se è falso l’AND tra le due variabili aba NAND b 00 1 01 1 10 1 11 0

81 Dario Bianchi - 2003Fond. Informatica - Ing. Civile L’operatore NOR Il risultato è vero solo se è falso l’OR tra le due variabili ab a NOR b 00 1 01 0 10 0 11 0

82 Dario Bianchi - 2003Fond. 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:

83 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Precedenze tra operatori Le precedenze sono simili al + e al x dell’algebra consueta: –priorità alta x –priorità bassa +

84 Dario Bianchi - 2003Fond. 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) = XX+(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

85 Dario Bianchi - 2003Fond. 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 + YX+Y = X ·Y De Morgan

86 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Proprietà operatori universali NOR (  ) NAND (  ) X  1 = 0X  0 = 1 X  0 = XX  1 = X X  X = XX  X = X X  Y = X·YX  Y = X+Y X  Y = X+YX  Y = X·Y

87 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Sommattore x n y n c n-1 rnrn cncn x 1 y 1 c 0 r1r1 c1c1 x 0 y 0 c 0 r0r0 c0c0

88 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Sommatore xixi yiyi c i-1 riri cici 00000 00110 01010 01101 10010 10101 11001 11111 r i = (x i  y i )  c i-1 c i = c i-1 (x i  y i ) + x i y i

89 Dario Bianchi - 2003Fond. 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)

90 Dario Bianchi - 2003Fond. Informatica - Ing. Civile Latch RS r s Q Q RSQQ’ 0000 0011 0101 0111 1000 1010 110- 111- Q = stato precedente Q’=Stato successivo


Scaricare ppt "Dario Bianchi - 2003Fond. Informatica - Ing. Civile Rappresentazione dell’Informazione Corso di Laurea in Ingegneria Civile Prof. Dario Bianchi."

Presentazioni simili


Annunci Google