Rappresentazione dei numeri in virgola fissa Il numero

  • Slides: 48
Download presentation
Rappresentazione dei numeri in virgola fissa • Il numero complessivo di cifre significative dei

Rappresentazione dei numeri in virgola fissa • Il numero complessivo di cifre significative dei numeri che possono essere rappresentate in un calcolatore è limitato dalla capacità di una cella di memoria (con k bit, in modulo e segno, si rappresentano i numeri compresi fra – 2 k-1+1 e 2 k-1 -1) • Quando si utilizzano numeri in cui sia presente sia una parte intera, sia una decimale si può ricorrere alla rappresentazione detta in Virgola Fissa in cui si fissa la posizione che la virgola deve avere all’interno del numero da rappresentare • Ciò equivale a stabilire a priori il numero di cifre da utilizzare sia per la parte intera, sia per quella decimale • Per i numeri negativi si può utilizzare ancora la tecnica del complemento Università di Pavia - corso di Fondamenti di Informatica 113

Rappresentazione dei numeri in virgola fissa Esempio: memorizzare 72. 6 con 12 bit, di

Rappresentazione dei numeri in virgola fissa Esempio: memorizzare 72. 6 con 12 bit, di cui 4 riservati alle cifre decimali 72 36 18 9 4 2 1 0 0 1 0 b 1 b 2 b 3 b 4 b 5 b 6 b 7 0. 6 1. 2 0. 4 0. 8 1. 6 1 0 0 1 b-2 b-3 b-4 72. 610 = 0100 10012 Rappresentare -72. 6: -72. 610 = 1011 01112 In pratica il numero è stato moltiplicato per 24, avendo stabilito di avere 4 cifre decimali Problema: ridotto intervallo di rappresentazione dei numeri e ridotta precisione di rappresentazione Università di Pavia - corso di Fondamenti di Informatica 114

Rappresentazione normalizzata dei numeri reali Qualsiasi numero reale a 0 può essere rappresentato in

Rappresentazione normalizzata dei numeri reali Qualsiasi numero reale a 0 può essere rappresentato in modo univoco in base • b>1 nella forma: • Questa rappresentazione equivale a: – db-1 db-2 … d 0, d-1 d-2 … per b>0 – 0, d-1 d-2 … per b=0 – 0, 0 … 0 d-b-1 d-b-2 … per b<0 • Se a=0, la rappresentazione è semplicemente 0 • In pratica si deve fissare una variabilità finita per l’indice i Università di Pavia - corso di Fondamenti di Informatica 115

Rappresentazione normalizzata dei numeri reali 1758. 37 = 0. 175837 104 -0. 001 =

Rappresentazione normalizzata dei numeri reali 1758. 37 = 0. 175837 104 -0. 001 = -0. 1 10 -2 1 = 0. 1 101 5000 = 0. 5 104 In generale qualunque numero A può essere rappresentato da: 1. Il segno di A (S= segno, con la convenzione: 0 = +, 1 = -); 2. Le cifre significative di A (M= mantissa) rappresentate in una forma normalizzata; se n sono le cifre utilizzate e B è la base del sistema di numerazione, l’intervallo di variabilità della mantissa è: B-1 M < 1, con precisione di B-n; 3. L’esponente (E) a cui bisogna elevare la base B per ottenere il fattore per cui moltiplicare la mantissa per ottenere A A = S 0. M x B E Università di Pavia - corso di Fondamenti di Informatica 116

Rappresentazione in virgola mobile Per una rappresentazione effettiva si conviene di: • eliminare i

Rappresentazione in virgola mobile Per una rappresentazione effettiva si conviene di: • eliminare i simboli ridondanti • fissare la lunghezza della mantissa • fissare la lunghezza dell’esponente • utilizzare per l’esponente una convenzione che permetta di rappresentare numeri positivi e negativi senza l’indicazione esplicita del segno (complemento alla base o tecnica dell’eccesso, sommando una opportuna costante) • disporre gli elementi rimasti (segno, esponente, mantissa) in un ordine convenzionale Quindi A viene rappresentato dalla sequenza: S E M Università di Pavia - corso di Fondamenti di Informatica 117

Rappresentazione in virgola mobile Esempi: • in base 10: 1 cifra per il segno

Rappresentazione in virgola mobile Esempi: • in base 10: 1 cifra per il segno (0 = +, 1 = -), 2 cifre per l’esponente, rappresentato in complemento, e 8 cifre per la mantissa S E E M M M M 1758. 37 0. 175837 104 0 04 17583700 -0. 001 -0. 1 10 -2 1 98 10000000 1 0. 1 101 0 01 10000000 5000 0. 5 104 0 04 50000000 -63517. 8 -0. 635178 105 1 05 63517800 -0. 0000635178 -0. 635178 10 -4 1 96 63517800 M Università di Pavia - corso di Fondamenti di Informatica 118

Rappresentazione in virgola mobile Esempi: • in base 2: 1 bit per il segno

Rappresentazione in virgola mobile Esempi: • in base 2: 1 bit per il segno (0 = +, 1 = -), 8 bit per l’esponente, rappresentato in complemento e 23 bit per la mantissa 1001100011111000. 0111011 0. 10011000111110000111011 216 0 00010000 10011000111110000111011 -0. 0000010110011111 -0. 10110011111 2 -10 1 111101100111110000 Cosa corrisponde al numero seguente rappresentato in virgola mobile? 11101101111110000000 S| E | M | -0. 111100011111 2 -37 0. 0000000000000000000111100011111 Università di Pavia - corso di Fondamenti di Informatica 119

Formato dei dati numerici in virgola mobile • Numeri reali in singola precisione: 32

Formato dei dati numerici in virgola mobile • Numeri reali in singola precisione: 32 bit (1 per il segno, 8 per l’esponente, 23 per la mantissa); in doppia precisione: 64 (1, 11, 52) • In singola precisione l’esponente varia quindi tra -128 e +127 • Si parla di dinamica per descrivere l’intervallo dei numeri rappresentabili – 2127 < N < 2127 (circa -1038< N < 1038) • La mantissa di 23 bit permette di rappresentare numeri con circa 7 cifre decimali significative • Per valori superiori a 1038 o inferiori a -1038 si parla di overflow • Per valori inferiori al minimo numero positivo rappresentabile ( 0) o superiori al massimo numero negativo rappresentabile si parla di underflow Università di Pavia - corso di Fondamenti di Informatica 120

Formato dei dati numerici in virgola mobile Passi per ottenere la rappresentazione binaria •

Formato dei dati numerici in virgola mobile Passi per ottenere la rappresentazione binaria • trasformazione in binario • normalizzazione • memorizzazione Esempio: 75. 125 75 37 18 9 4 2 1 0 1 0. 125 0. 250 0. 500 1. 000 0 0 1 75. 12510 = 1001011. 0012 1001011. 001 0. 1001011001 27 Quindi in singola precisione: 0 00000111 10010110010000000 Università di Pavia - corso di Fondamenti di Informatica 121

Formato dei dati numerici in virgola mobile Esempio: 0. 0375 0. 0750 0. 1500

Formato dei dati numerici in virgola mobile Esempio: 0. 0375 0. 0750 0. 1500 0. 3000 0. 6000 1. 2000 0. 4000 0. 8000 1. 6000 0 0 1 Quindi in singola precisione: 0 11111100 100110011001100 Università di Pavia - corso di Fondamenti di Informatica 122

Operazioni tra numeri in Virgola Mobile Ø Operazioni di moltiplicazione e divisione: 1) 2)

Operazioni tra numeri in Virgola Mobile Ø Operazioni di moltiplicazione e divisione: 1) 2) 3) Ø Le mantisse vengono moltiplicate o divise Gli esponenti vengo sommati o sottratti Se necessario, la mantissa viene rinormalizzata e l’esponente corretto Operazioni di somma o sottrazione: 1) 2) 3) L’esponente più piccolo viene reso uguale al più grande spostando la mantissa verso destra del numero di cifre pari alla differenza tra gli esponenti (shift per ottenere un corretto incolonnamento) Le mantisse vengono sommate o sottratte Se necessario, la mantissa viene rinormalizzata e l’esponente corretto A: 0, 2347 x 104 + B: 0, 6502 x 102 = A: 0, 2347 x 104 + Shift: 0, 006502 x 104 = A+B: 0, 241202 x 104 NB Nello shift si potranno perdere alcune cifre meno significative, ma sono quelle di peso minore del numero più piccolo. Nell’esempio le cifre in rosso verrebbero perse se si utilizzassero solo 4 cifre decimali per la mantissa Università di Pavia - corso di Fondamenti di Informatica 123

Standard IEEE 754 • Un numero reale 0 viene scritto in binario come 1.

Standard IEEE 754 • Un numero reale 0 viene scritto in binario come 1. b 1 b 2 b 3… 2 e • La mantissa a è perciò variabile nell’intervallo 1 a < 2 • Il numero viene memorizzato su 32 bit – 1 bit di segno – 8 bit di esponente – 23 bit per la mantissa • Poiché la prima cifra è sempre 1, questa cifra non viene memorizzata. Di fatto la mantissa ha 24 cifre binarie, di cui la prima sottintesa • L’esponente viene memorizzato sommando il valore costante 127 (notazione eccesso 127) Esempio: rappresentare 1. 0 0 01111111 00000000 Università di Pavia - corso di Fondamenti di Informatica 124

Esempi IEEE 754 • -1 1 01111111 00000000 • 2 = 1 21 0

Esempi IEEE 754 • -1 1 01111111 00000000 • 2 = 1 21 0 100000000 • -3 = -1. 1 21 1 10000000 100000000 • 0. 5 = 1 2 -1 0 01111110 00000000 • 0. 666666 0 01111110 010101010 • 3. 141593 0 10000000 1001001 00001111 11011100 Università di Pavia - corso di Fondamenti di Informatica 125

Codifica di dati non numerici: definizioni • I calcolatori lavorano soltanto con i numeri,

Codifica di dati non numerici: definizioni • I calcolatori lavorano soltanto con i numeri, ma devono poter trattare anche altre entità: per questa ragione sono stati inventati i codici. • Alfabeto è un insieme finito di simboli (caratteri) distinti • Parola o Stringa è una sequenza finita di simboli Esempi: A={0, 1} alfabeto binario; B={A, B, C, …, Z} alfabeto inglese; C={A, B, …, Z, 0, 1, …, 9} alfabeto alfanumerico • Parola è una successione finita di caratteri di un alfabeto 101101 è una parola di A o di C SFSJKGH è una parola di B o di C SF 120 C è una parola di C Università di Pavia - corso di Fondamenti di Informatica 126

Alfabeto usato dai calcolatori I calcolatori lavorano utilizzando due simboli: – INTERRUTTORE: aperto/chiuso –

Alfabeto usato dai calcolatori I calcolatori lavorano utilizzando due simboli: – INTERRUTTORE: aperto/chiuso – TRANSISTOR: conduce/non conduce – LIVELLO DI TENSIONE: alto/basso – RIFLETTIVITÀ DI UN’AREOLA: alta/bassa – DOMINIO DI MAGNETIZZAZIONE: I calcolatori utilizzano quindi una logica e un’aritmetica binaria Ai due stati stabili di un dispositivo, ai due valori di una grandezza, vengono associati convenzionalmente i simboli 0 e 1 Università di Pavia - corso di Fondamenti di Informatica 127

Alfabeti usati dall’uomo • { A, B, C, D, … , Z } •

Alfabeti usati dall’uomo • { A, B, C, D, … , Z } • { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } • { ; , . ! ? : ( ) ‘ “… } • { Caratteri giapponesi } • { Caratteri arabi } • È necessario stabilire delle regole di corrispondenza, dette CODIFICHE • La codifica metterà in corrispondenza biunivoca ogni SIMBOLO appartenente all’alfabeto più ricco con una STRINGA di simboli appartenenti all’alfabeto più ridotto Università di Pavia - corso di Fondamenti di Informatica 128

Codifica • Dato un insieme I di elementi qualsiasi, si dice codifica di I

Codifica • Dato un insieme I di elementi qualsiasi, si dice codifica di I mediante parole di un alfabeto A un procedimento che permette di stabilire una corrispondenza biunivoca tra gli elementi di I e le parole di un sottoinsieme Q dell’insieme delle parole di A. Esempio: codifica di lettere tramite cifre decimali A 01, B 02, C 03, D 04, . . . , Z 26 • Un codice binario è quindi la codifica dei simboli di un alfabeto mediante stringhe di bit; se S C è la cardinalità di S (n. di elementi) per il numero n di bit da utilizzare deve valere: C 2 n. Ossia: n ³ élog ( C ) ù = M 2 Università di Pavia - corso di Fondamenti di Informatica 129

Codici non ridondati e ridondanti Ø Ø Se n = M il codice è

Codici non ridondati e ridondanti Ø Ø Se n = M il codice è non ridondante (usa il minimo numero di bit per codificare tutti i simboli di S) Se n > M il codice è ridondante (usa più bit del necessario per codificare tutti i simboli di S) Si definisce distanza di Hamming (H) di un codice: Il minimo numero di bit di cui differiscono due parole qualsiasi del codice • Se n=M → H=1 • Se c’è ridondanza H ≥ 1 Aggiungendo opportunamente la ridondanza alle parole si possono ottenere codici a rilevazione e/o a correzione di errore • Si può dimostrare che per i codici a sola rilevazione: • N° di bit errati rilevati: R = H-1 • e che per i codici a correzione: • N° di bit errati corretti: C ≤ (H-1)/2 • N° di bit errati rilevati: R = H-C-1 Università di Pavia - corso di Fondamenti di Informatica 130

Codici Ridondanti a Rivelazione/Correzione Sono codici con distanza di Hamming H > 1 e

Codici Ridondanti a Rivelazione/Correzione Sono codici con distanza di Hamming H > 1 e possono avere la caratteristica di rivelare o correggere uno o più bit errati Ø Parità: • • • È un codice con H = 2. Si ottiene dal codice non ridondante aggiungendo 1 bit in modo che il numero complessivo di bit uguali a “ 1” sia pari (parità pari) o dispari (parità dispari) Avendo H=2 può solo rilevare gli errori, e solo se questi accadono singolarmente o in un numero dispari nella stessa parola di codice Università di Pavia - corso di Fondamenti di Informatica 131

Codici di Hamming • Sono codici ridondanti con H>2 e perciò con capacità di

Codici di Hamming • Sono codici ridondanti con H>2 e perciò con capacità di auto correzione. • Il più noto e semplice ha H=3: dato un codice non ridondante di n bit, vengono inseriti in particolari posizioni k bit di controllo. • Perché possa essere corretto un errore (singolo) deve valere: n ≤ 2 k –k – 1 • Corregge un bit in posizione arbitraria • Rivela la presenza di un solo errore • Funziona bene se gli errori sono distribuiti casualmente Esempio: parola di 7 bit (n = 7) Per creare un codice di Hamming con H=3 bisogna rispettare la relazione precedente e quindi usare 4 bit di controllo aggiuntivi (k = 4). Università di Pavia - corso di Fondamenti di Informatica 132

Codici Ciclici Usati nella trasmissione a distanza su linee rumorose, soprattutto se sono possibili

Codici Ciclici Usati nella trasmissione a distanza su linee rumorose, soprattutto se sono possibili errori a raffica. Sono codici rivelatori di errore, ma non autocorrettori. In casi di errore rivelato il messaggio deve essere ritrasmesso. Un messaggio M di k bit da trasmettere viene trattato come un polinomio di grado k-1, i cui coefficienti sono i bit del messaggio. Preso un altro polinomio G di grado r si arriva attraverso operazioni modulo 2 su M e G, ad un terzo polinomio T di grado t (con k<t≤k+r), divisibile per G. I coefficienti di T costituiscono la stringa di bit da trasmettere. In ricezione un algoritmo analogo divide T per G. Se il resto della divisione è ≠ 0 il messaggio deve essere ritrasmesso. Università di Pavia - corso di Fondamenti di Informatica 133

Codifica delle cifre decimali Vi sono diverse codifiche delle cifre decimali • Codice BCD

Codifica delle cifre decimali Vi sono diverse codifiche delle cifre decimali • Codice BCD (Binary Coded Decimal): ogni cifra decimale viene codificata con 4 bit. È un codice pesato perché il valore di ogni cifra viene ottenuto eseguendo una somma pesata delle quattro cifre binarie che lo compongono • Codice ad eccesso tre: è basato sul codice BCD. Ogni codifica si ottiene sommando 3 alla codifica BCD. Non è un codice pesato. Per passare da una cifra alla cifra corrispondente al complemento a 9 basta complementare le cifre binarie della sua codifica • Codice 2421: i numeri indicano ordinatamente i pesi delle 4 cifre binarie. Come per l’eccesso tre, le codifiche di una cifra e della cifra corrispondente al complemento a 9 sono fra loro complementari Università di Pavia - corso di Fondamenti di Informatica 134

Codifica delle cifre decimali • BCD Eccesso 3 2421 0 0000 0011 0000 1

Codifica delle cifre decimali • BCD Eccesso 3 2421 0 0000 0011 0000 1 0001 0100 0001 2 0010 0101 0010 3 0011 0110 0011 4 0100 0111 0100 5 0101 1000 1011 6 0110 1001 1100 7 0111 1010 1101 8 1000 1011 1110 9 1001 1100 1111 Sono tutti codici che lasciano 6 configurazioni inutilizzate delle 16 a disposizione con 4 bit Università di Pavia - corso di Fondamenti di Informatica 135

Codice Gray • Per il modo in cui viene creato si dice che è

Codice Gray • Per il modo in cui viene creato si dice che è un codice riflesso. Serve a codificare un numero in modo che le stringhe di bit che rappresentano numeri consecutivi differiscano per un solo bit. Il codice Gray elimina il problema di transizioni spurie passando da una codifica alla successiva • Dato un numero, si può passare dalla sua codifica binaria b=bm bm-1 … b 1 b 0 alla codifica Gray g=gm gm-1 … g 1 g 0 nel modo seguente: b 2 b 1 b 0 g 2 g 1 g 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 mentre il passaggio inverso è è il simbolo di somma modulo 2 (EXOR - or esclusivo)Università di Pavia - corso di Fondamenti di Informatica 136

Codifica di informazioni alfanumeriche • Per convenzione, si definisce alfabeto esterno di un calcolatore

Codifica di informazioni alfanumeriche • Per convenzione, si definisce alfabeto esterno di un calcolatore l’insieme dei caratteri che è in grado di leggere e stampare mediante i dispositivi di I/O. Questo alfabeto comprende almeno 64 caratteri (esempio codice Field data): – le 26 lettere dell’alfabeto inglese maiuscole – le 10 cifre decimali – 28 caratteri vari (spazio, segni di punteggiatura, etc. ) In genere si utilizzano codici a 7 o 8 bit • EBCDIC (Extended Binary Coded Decimal Interchange Code): 8 bit. Rappresenta caratteri alfanumerici e speciali. Personalizzato per le varie nazionalità (necessita di conversioni e ormai obsoleto) • UNICODE: rappresenta con 16 o 21 bit tutti i caratteri della lingua parlata dall’uomo (usato da Java e adottato da HP, IBM, Microsoft, Oracle, …) Università di Pavia - corso di Fondamenti di Informatica 137

Codice ASCII Ø American Standard Code for Information Interchange Ø Ne esistono due versioni:

Codice ASCII Ø American Standard Code for Information Interchange Ø Ne esistono due versioni: • 7 bit → 128 simboli; in questo caso l’ottavo bit è usato a volte come ridondanza (H=2) per la rilevazione di un errore (bit di parità) • 8 bit → 256 simboli (ASCII esteso); codifica anche lettere accentate e caratteri grafici; l’estensione non è standardizzata e quindi fra i 128 simboli aggiunti può succedere che alla stessa codifica corrispondano simboli diversi Ø È il codice più usato per la codifica dei caratteri alfanumerici (lettere e cifre) oltre che per simboli di interpunzione e vari. Ad esempio: . ; : , ( ) [ ] { } / < > = ? ! ~ | # $ % & * ^ - @ ecc. Università di Pavia - corso di Fondamenti di Informatica 138

Codice ASCII Università di Pavia - corso di Fondamenti di Informatica 139

Codice ASCII Università di Pavia - corso di Fondamenti di Informatica 139

Codifica delle immagini • In un calcolatore tutto è discreto • L’immagine è un

Codifica delle immagini • In un calcolatore tutto è discreto • L’immagine è un insieme continuo di informazioni (luce, colore) in due dimensioni • Quando si memorizzano immagini pittoriche o fotografiche si scompone artificiosamente l'immagine in una sequenza di elementi di informazione codificati con sequenze binarie Università di Pavia - corso di Fondamenti di Informatica 140

Codifica bitmap di Immagini • L'immagine viene suddivisa in un reticolo di punti detti

Codifica bitmap di Immagini • L'immagine viene suddivisa in un reticolo di punti detti pixel (picture element) • Ogni pixel viene codificato con una sequenza di bit 00000000000010000000010100000001000000100000100000001000000001000000100000 La qualità dell'immagine dipende dal numero di pixel per unità di lunghezza e dal numero di bit utilizzati per codificare ogni pixel. Università di Pavia - corso di Fondamenti di Informatica 141

Codifica bitmap di Immagini Problema: Non è possibile ingrandire a piacimento un'immagine perché non

Codifica bitmap di Immagini Problema: Non è possibile ingrandire a piacimento un'immagine perché non si aumenta il dettaglio, ma si distinguono i singoli pixel. La soluzione di aumentare il numero di pixel non è possibile perché questo aumenterebbe lo spazio necessario per memorizzare una immagine (si richiederebbe una compressione) Università di Pavia - corso di Fondamenti di Informatica 142

Codifica dei pixel Ø Immagini in bianco e nero: raramente si usa un solo

Codifica dei pixel Ø Immagini in bianco e nero: raramente si usa un solo bit. Ogni pixel di solito si codifica con 8 bit per rappresentare diversi livelli di grigio (28 = 256 livelli) Ø Immagini a colori: i colori vengono ottenuti tramite la combinazioni di almeno 3 colori base, detti primari. La composizione può avvenire tramite la tecnica di sintesi sottrattiva o additiva in funzione del tipo di dispositivo utilizzato (stampante, monitor o televisore) • Per codificare un pixel si devono codificare i tre colori primari (es. RGB), la cui combinazione consente di ottenere il colore del pixel stesso • Per ciascun colore primario spesso si usano 8 bit e quindi in totale per codificare ciascun pixel servono 24 bit • Ciò consente di codificare 224 ~ 16 milioni di colori diversi • Pavia utilizzati - corso di Fondamentiper di Informatica 143 Con profondità di colore si intende il numero. Università di dibit

Occupazione di memoria di un’immagine L’occupazione di memoria di un’immagine dipende da: Ø definizione

Occupazione di memoria di un’immagine L’occupazione di memoria di un’immagine dipende da: Ø definizione o risoluzione dell’immagine (intesa come il numero di pixel per unità di lunghezza: dot per inch = DPI) Ø Numero dei colori (dipende a sua volta dal numero di bit usati per codificarli: 8, 16, 24 bit) Tipo immagine Definizione Colori Occupazione Televisiva 720 x 625 256 (8 bit) ~ 440 k. Byte Monitor di PC 1024 x 768 65. 536 (16 bit) 1, 5 MByte Fotografica 15. 000 x 10. 000 16. 000 (24 bit) ~ 430 MByte Università di Pavia - corso di Fondamenti di Informatica 144

Formati di file bitmap Ø TIFF (Tagged Image File Format): Profondità fino a 24

Formati di file bitmap Ø TIFF (Tagged Image File Format): Profondità fino a 24 bit e vari metodi di compressione Ø GIF (Graphics Interchange Format): consente di memorizzare più immagini in uno stesso file Ø JFIF (Jpeg File Interchange Format) e SPIFF implementano il metodo di codifica JPEG (Joint Photographers Expert Group), formato standard che usa due tipi di compressione molto utilizzato su Internet. Prevede la tecnica di visualizzazione interallacciata (l’immagine viene composta per righe alterne per cui viene caricata velocemente, ma diventa più nitida mano che viene completata) Ø BMP (Bit. Ma. P) usata con Windows supporta immagini con profondità 1, 4, 8 e 24 bit Università di Pavia - corso di Fondamenti di Informatica 145

Immagini vettoriali Questo formato si usa in applicazioni di progettazione meccanica, architettonica, elettronica, e

Immagini vettoriali Questo formato si usa in applicazioni di progettazione meccanica, architettonica, elettronica, e in tutte quelle applicazioni in cui l’immagine viene costruita con elementi di alto livello quali linee, cerchi, poligoni, archi, colori, ecc. Al contrario delle immagini bitmap in cui l’elemento di informazione è il pixel, in quelle vettoriali gli elementi dell’immagine sono gli oggetti grafici che la compongono circle 98 66 50 polyline 0 48 88 152 88 48 Ogni oggetto è codificato attraverso un identificatore (es. polyline, circle, etc. ) e alcuni parametri quali le coordinate del centro e la lunghezza del raggio (per la circonferenza) o le coordinate dei vertici (per il poligono) Università di Pavia - corso di Fondamenti di Informatica 146

Formato vettoriale per le immagini Vantaggi: Ø Indipendenza dal dispositivo di visualizzazione e dalla

Formato vettoriale per le immagini Vantaggi: Ø Indipendenza dal dispositivo di visualizzazione e dalla sua risoluzione Ø Gli elementi grafici sono indipendenti l’uno dall’altro e si possono elaborare distintamente Ø minore occupazione di memoria rispetto alla grafica bitmap Svantaggi: Ø applicabilità limitata: un’immagine fotografica non si può scomporre in elementi primitivi Ø limiti nell’utilizzo in quanto si possono manipolare immagini vettoriali solo con il software utilizzato per crearle o compatibile Università di Pavia - corso di Fondamenti di Informatica 147

Formati di file vettoriali Ø Post. Script: incorporato in molte stampanti, si è evoluto

Formati di file vettoriali Ø Post. Script: incorporato in molte stampanti, si è evoluto nel tempo e consente di rappresentare immagini vettoriali e bitmap anche a colori con diverse tecniche di compressione. Formati derivati del Post. Script sono EPS e PDF Ø DXF (Drawing Interchange Format) usato da molti programmi di disegno memorizza i vettori in formato testo. La versione binaria DXB è più compatta ma meno diffusa Università di Pavia - corso di Fondamenti di Informatica 148

Rappresentazione di immagini in movimento Immagini in movimento vengono rappresentate attraverso sequenze di immagini

Rappresentazione di immagini in movimento Immagini in movimento vengono rappresentate attraverso sequenze di immagini fisse (frame) visualizzate ad una frequenza sufficientemente alta da consentire all’occhio umano di ricostruire il movimento (24, 25 o 30 immagini al secondo) Lo standard multimediale per le immagini in movimento, MPEG, codifica ciascun frame separatamente secondo lo standard JPEG Si utilizzano tecniche di compressione in quanto un minuto di filmato a 25 fotogrammi al secondo richiederebbe uno spazio di memorizzazione di 644 MByte (un CD contiene 680 MByte) Università di Pavia - corso di Fondamenti di Informatica 149

Algebra Booleana (George Boole (1815 -1864)) • Il simbolo “: : =“ significa “è

Algebra Booleana (George Boole (1815 -1864)) • Il simbolo “: : =“ significa “è definito / composto da” • Il simbolo “|” significa “oppure” • L’algebra di Boole è definita su due elementi (vero | falso, 0 | 1) • Costante booleana : : = 1 | 0 • Operatore booleano : : = NOT | AND | OR • Una variabile booleana può assumere solo uno dei due valori 0 o 1 Università di Pavia - corso di Fondamenti di Informatica 150

Operatori Booleani • NOT (simbolo ): simbolo grafico 0 1 1 0 Università di

Operatori Booleani • NOT (simbolo ): simbolo grafico 0 1 1 0 Università di Pavia - corso di Fondamenti di Informatica 151

Operatori Booleani • AND (prodotto logico); simbolo * oppure • 1*1=1 1*0=0*1=0*0=0 simbolo grafico

Operatori Booleani • AND (prodotto logico); simbolo * oppure • 1*1=1 1*0=0*1=0*0=0 simbolo grafico x y x*y 0 0 1 1 1 Università di Pavia - corso di Fondamenti di Informatica 152

Operatori Booleani • OR (somma logica); simbolo + 0+0=0 1+0=0+1=1 simbolo grafico x y

Operatori Booleani • OR (somma logica); simbolo + 0+0=0 1+0=0+1=1 simbolo grafico x y x+y 0 0 1 1 1 0 1 1 Università di Pavia - corso di Fondamenti di Informatica 153

Funzioni booleane o logiche • Sulle variabili booleane può essere definita una funzione booleana

Funzioni booleane o logiche • Sulle variabili booleane può essere definita una funzione booleana o logica F(x 1, x 2, …, xn) che per ogni n-pla xi assume valori 0 e 1 • Una particolare funzione logica F è definita quando ad essa è assegnata una “tavola di verità”, una tabella in cui è specificato il valore che assume F in corrispondenza di ogni combinazione delle variabili x 1, x 2, …, xn • Il numero di combinazioni di n variabili è 2 n, cioè la tavola della verità è costituita da 2 n righe • Nell’algebra di Boole vale il teorema di dualità che dice: Ogni identità e ogni proprietà resta valida se si scambiano tra loro gli elementi 0 e 1 e gli operatori AND e OR • Una espressione è duale di un’altra se ottenuta scambiando AND con OR e 0 con 1. Se un teorema è vero, anche il suo duale è vero Università di Pavia - corso di Fondamenti di Informatica 154

Proprietà dell’algebra booleana Duale Idempotenza Complementazione Prop. commutativa Prop. associativa Prop. Distributiva Prop. assorbiment

Proprietà dell’algebra booleana Duale Idempotenza Complementazione Prop. commutativa Prop. associativa Prop. Distributiva Prop. assorbiment o { De Morgan Università di Pavia - corso di Fondamenti di Informatica 155

Operatori Universali NAND e NOR sono detti universali perché possono da soli realizzare i

Operatori Universali NAND e NOR sono detti universali perché possono da soli realizzare i tre operatori fondamentali NOT, AND e OR NAND (/) = negazione dell’AND NOR ( ) = negazione dell’OR 1/1=0 0 0=1 1/0=0/1=0/0=1 1 0=0 1=1 1=0 simbolo grafico x y x/y x y 0 0 1 0 1 1 0 1 1 0 Università di Pavia - corso di Fondamenti di Informatica 156

Operatori Universali Proprietà: Solo NOR Solo NAND Not Or And Or Università di Pavia

Operatori Universali Proprietà: Solo NOR Solo NAND Not Or And Or Università di Pavia - corso di Fondamenti di Informatica 157

Operatori Universali • Realizzazione tramite NAND NOR NOT OR AND Università di Pavia -

Operatori Universali • Realizzazione tramite NAND NOR NOT OR AND Università di Pavia - corso di Fondamenti di Informatica 158

Operatore OR-esclusivo (EXOR) • L’operatore EXclusive-OR o EXOR è anche detto sommatore modulo 2.

Operatore OR-esclusivo (EXOR) • L’operatore EXclusive-OR o EXOR è anche detto sommatore modulo 2. Il simbolo grafico è • x y 0 0 1 1 1 0 Può essere ricavato tramite i 3 operatori elementari: f (x, y ) = x × y + x × y = x y Università di Pavia - corso di Fondamenti di Informatica 159

Operatore OR-esclusivo (EXOR) • L’exor è anche detto funzione DISPARITÀ, perché è vero solo

Operatore OR-esclusivo (EXOR) • L’exor è anche detto funzione DISPARITÀ, perché è vero solo quando un numero dispari dei suoi argomenti è vero • Proprietà: Università di Pavia - corso di Fondamenti di Informatica 160