Rappresentazione dei numeri in virgola fissa by n5R95f2

VIEWS: 41 PAGES: 48

									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 –2k-1+1 e 2k-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 cui 4 riservati alle cifre decimali

  72       0        b0          0.6
  36       0        b1          1.2      1        b-1
  18       0        b2          0.4      0        b-2
  9        1        b3          0.8      0        b-3
  4        0        b4          1.6      1        b-4
  2        0        b5
  1        1        b6          72.610 = 0100 1000 10012
  0        0        b7

Rappresentare -72.6: -72.610 = 1011 0111 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 modo univoco in base
        b>1 nella forma:

                                                    
                             a  signa   b   
                                                     d b i
                                                               i

                                                    i 1

                                                              1 a  0
                             con   Z , d i  0, signa   
                                                              1 a  0
    •   Questa rappresentazione equivale a:

           – d-1 d-2 … d0, d-1 d-2 …                             per >0

           – 0, d-1 d-2 …                                          per =0

           – 0, 0 … 0 d--1 d--2 …                                per <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                 =          -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-n  M < 1;

 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 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 (0 = +, 1 = -), 2 cifre per l’esponente,
    rappresentato in complemento, e 8 cifre per la mantissa

             S   E   E      M      M    M   M     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

                                                      Università di Pavia - corso di Fondamenti di Informatica   118
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.0000000000101100110011111 -0. 101100110011111  2-10

 1 11110110 10110011001111100000000

 Cosa corrisponde al numero seguente rappresentato in virgola mobile?

 11101101111110001111100000000000

 -0. 111100011111  2-37

 0.0000000000000000000000000000000000000111100011111

                                                  Università di Pavia - corso di Fondamenti di Informatica   119
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

•   trasformazione in binario

•   normalizzazione

•   memorizzazione


Esempio: 75.125

    75      1             0.125
    37      1             0.250    0
    18      0             0.500    0
    9       1             1.000    1
    4       0                            75.12510 = 1001011.0012
    2       0                            1001011.001  0.1001011001  27
    1       1
    0
Quindi in singola precisione:
0 00000111 10010110010000000000000
                                                        Università di Pavia - corso di Fondamenti di Informatica   121
Formato dei dati numerici in virgola mobile

Esempio: 0.0375


  0.0375             0

                                        0.037510  0.000010012
  0.0750             0
  0.1500             0
  0.3000
  0.6000
                     0
                     0                  0.00001001  0.1001 2             4

  1.2000             1
  0.4000             0
  0.8000             0
  1.6000             1

   Quindi in singola precisione:
   0 11111100 10011001100110011001100




                                                      Università di Pavia - corso di Fondamenti di Informatica   122
Operazioni tra numeri in Virgola Mobile

      Operazioni di moltiplicazione e divisione:
     1)   Le mantisse vengono moltiplicate o divise
     2)   Gli esponenti vengo sommati o sottratti
     3)   Se necessario, la mantissa viene rinormalizzata e l’esponente corretto
      Operazioni di somma o sottrazione:
     1)   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)
     2)   Le mantisse vengono sommate o sottratte
     3)   Se necessario, la mantissa viene rinormalizzata e l’esponente corretto


     A: 0,6502     x102 =           NB Nello shift si potranno perdere alcune
                                       cifre meno significative, ma sono quelle
 Shift: 0,006502 x104 +                di peso minore del numero più piccolo.
                                       Nell’esempio le cifre in rosso verrebbero
     B: 0,2347     x104 =
                                       perse se si utilizzassero solo 4 cifre
 A+B: 0,241202 x104                    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.b1b2b3…  2e

 •   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 0000000 00000000 00000000

                                                            Università di Pavia - corso di Fondamenti di Informatica   124
Esempi IEEE 754

•   -1

    1 01111111 0000000 00000000 00000000

•   2 = 1  21

    0 10000000 0000000 00000000 00000000

•   -3 = -1.1  21

    1 10000000 1000000 00000000 00000000

•   0.5 = 1  2-1

    0 01111110 0000000 00000000 00000000

•   0.666666

    0 01111110 0101010 10101010 10101010

•   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, 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:

    U={1} alfabeto unario;     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

    1011001101 è una parola di A o di C

    SFSJKGH è una parola di B o di C

    SF120C è 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

    – 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 }
•   { 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 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                                   S
    mediante stringhe di bit; se   C   è la cardinalità di       S     (n. di elementi)

    per il numero n di bit da utilizzare deve valere:   C  2n . 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 è 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 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 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 ≤ 2k –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 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 (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      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 è 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 … b1 b0
     alla codifica Gray g=gm gm-1 … g1 g0 nel modo seguente:
    b2   b1   b0        g2   g1   g0                   g m  bm
                                                      
                                                       g i  bi  bi 1                              0im
     0    0    0         0    0    0
     0    0    1         0    0    1
     0    1    0         0    1    1                 mentre il passaggio inverso è
     0    1    1         0    1    0
     1    0    0         1    1    0                  bm  g m
                                                      
     1    0    1         1    1    1
                                                      bi  g i  bi 1                               0im
     1    1    0         1    0    1
     1    1    1         1    0    0

 è 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 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 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:
   • 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
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 pixel (picture
     element)
•    Ogni pixel viene codificato con una sequenza di bit
                                             000000000000000000000000
                                             000000000000000000100000
                                             000000000000000010100000
                                             000000000000001000100000
                                             000000000000100000100000
                                             000000000010000000100000
                                             000000001000000000100000
                                             000000100000000000100000




    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 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 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
•   Con profondità di colore si intende il numero di bit utilizzati per
    codificare i pixel                               Università di Pavia - corso di Fondamenti di Informatica   143
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 usa 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 kByte


     Monitor di PC    1024 x 768        65.536 (16 bit)               1,5 MByte


     Fotografica      15.000 x 10.000    16.000.000                 ~ 430 MByte
                                           (24 bit)

                                                        Università di Pavia - corso di Fondamenti di Informatica   144
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 man
  mano che viene completata)

 BMP (BitMaP) 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 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 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



 PostScript: 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 PostScript 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 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 “è 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      ):


    1 0   0 1

    simbolo grafico



      x      x
      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

      x       y       x*y
      0       0        0
      0       1        0
      1       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+1=1

    simbolo grafico

      x       y       x+y
      0       0        0
      0       1        1
      1       0        1
      1       1        1




                                   Università di Pavia - corso di Fondamenti di Informatica   153
Funzioni booleane o logiche

 •   Sulle variabili booleane può essere definita una funzione booleana o
     logica F(x1, x2, …, 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 x1, x2, …, xn
 •   Il numero di combinazioni di n variabili è 2n, cioè la tavola della
     verità è costituita da 2n 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

                         x0  0                        x 1  1
                         x 1  x                       x0 x
Idempotenza              xx  x                        xx  x
Complementazione         xx  0                        x  x 1
Prop. commutativa        x y  yx                     x y  yx
Prop. associativa        x  y   z  x   y  z    x  y   z  x   y  z 
Prop. Distributiva       x  y  z  x  y  x  z    x   y  z   x  y   x  z 
                         x  x y  x                   x  x  y   x
Prop.assorbimento
                     {   x  ( x  y)  x  y           x  ( x  y)  x  y
De Morgan                x y  x  y                   x  y  x y
                         xx



                                                        Università di Pavia - corso di Fondamenti di Informatica   155
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                              simbolo grafico

      x      y      x/y                       x              y              x y
      0      0       1                        0              0                 1
      0      1       1                        0              1                 0
      1      0       1                        1              0                 0
      1      1       0                        1              1                 0


                                                  Università di Pavia - corso di Fondamenti di Informatica   156
  Operatori Universali

       Proprietà:
        x 1 0                                   x /0 1
        x0 x                                    x /1  x
        x  ( y  z)  ( x  y)  z               x /( y / z )  ( x / y ) / z
        xx x                                    x/ x  x
        x  y  x y                              x/ y  x y
        x y  x y                               x/ y  x y

        Solo NOR                                  Solo NAND

Not x  0  x  x  x                 Not    x 1  x  x  x
Or    x y0 x y x y  x y       And x  y 1  x  y  x  y  x  y
                  
And x  y  x  y  x  y  x  y     Or                  
                                             x  y  x y  x  y  x y
                                                      Università di Pavia - corso di Fondamenti di Informatica   157
Operatori Universali

 •   Realizzazione tramite               NAND                                         NOR


                                     x              x                                x             x
     NOT


                             x           x
                                                                          x              x y                     x y
                                                        x y              y
     OR                          y       y




                                                                              x             x
                             x               x y         x y
     AND                     y                                                                                     x y
                                                                               y             y




                                                                 Università di Pavia - corso di Fondamenti di Informatica   158
Operatore OR-esclusivo (EXOR)


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

    Il simbolo grafico è 

        x       y     xy
        0       0       0
        0       1       1
        1       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 quando un
     numero dispari dei suoi argomenti è vero

 •   Proprietà:

     x0  x
     x 1  x
     x x  0
     x  x 1
     x  y  y  x commutativa
     x  y   z  x   y  z  associativ a


                                                    Università di Pavia - corso di Fondamenti di Informatica   160

								
To top