Laboratorio Informatico di Base Concetti di base sull informatica
Codifica di filmati u Immagini in movimento sono memorizzate come sequenze di fotogrammi u In genere si tratta di sequenze compresse di immagini ad esempio si possono registrare solo le variazioni tra un fotogramma e l altro u Esistono vari formati (comprendente il sonoro): mpeg, avi (microsoft), quicktime (apple), mov 2
Compressione dei dati u Lossless Senza perdita di informazione Utilizzata per programmi, documenti, u Lossy Con perdita di informazione Rapporto di compressione variabile dall utente Immagini: GIF, JPEG (elimina lievi cambiamenti di colore) Animazioni: MPEG (memorizza solo differenze tra fotogrammi) Audio: MP3 (elimina suoni a basso volume sovrapposti con suoni ad alto volume) 3
Compressione JPEG (esempio) Codifica Bitmap Fattore qualità 90% (253 KB ) - 800 x 600-16,8 mln colori (24 bit) dimensione = 1.440.000 byte 1406 KB Fattore qualità 10% ( 12 KB ) Fattore qualità 1% ( 9 KB ) 4
Sistemi di numerazione Numero: entità astratta Numerale: stringa di caratteri (che sono finiti e caratteristici dei sistemi di numerazione) che rappresenta un numero in un dato sistema di numerazione Sistema di numerazione: definito da: Un insieme di simboli base (CIFRE) Un insieme di regole per rappresentare un numero mediante una stringa di cifre Un insieme di operazioni Base del sistema di numerazione: numero di simboli utilizzati (es. Base 2: 0 e 1) NOTA: lo stesso numero è rappresentato da numerali diversi in diversi sistemi 156 nel sistema decimale CLVI in cifre romane
Sistemi di numerazione posizionali Il valore del numero rappresentato da un numerale dipende dalle cifre usate e dalla loro posizione nella stringa Esempio: Il sistema decimale (base 10) Alle cifre (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) vengono associati nell ordine i primi 10 numeri naturali Indicata con i la posizione occupata dalla cifra c in una stringa (0 è la prima posizione a partire da destra), il numero rappresentato da tale cifra è pari a c * 10 i Es: la stringa 4125 (in base 10) rappresenta il numero: 4*10 3 + 1*10 2 + 2*10 1 + 5*10 0 = 4000 + 100 + 20 + 5 = 4125
Notazione posizionale (decimale) u Dato il numerale 354, ossia 3 centinaia, 5 decine, 4 unità u Il numero è: 3 * 10 2 + 5 * 10 1 + 4 * 10 0 u in base 10 con 3 cifre posso rappresentare i numeri da 0 a 999: 1000 numeri, pari a 10 3 (la base 10 elevata a potenza, con esponente uguale al numero di cifre che uso)
Notazione posizionale (decimale) Dato un numerale espresso come: u c n c n-1 c 1 c 0 dove i coefficienti c i possono essere le cifre da 0 a 9 Il numero corrispondente è: u c n *10 n + c n-1 *10 n-1 + + c 1 *10 1 + c 0 *10 0 u In base 10 con N cifre posso rappresentare i 10 N numeri da 0 a 10 N -1
Notazione posizionale (generale) u Data una base B u considerato il numerale c n c n-1 c 1 c 0 dove i coefficienti c i possono essere le cifre da 0 a B-1 u Il numero corrispondente è: u c n *B n + c n-1 *B n-1 + + c 1 *B 1 + c 0 *B 0 u con N cifre posso rappresentare i B N numeri da 0 a B N -1
Notazione posizionale (binaria) u Considerando B=2 u Dato il numerale: c n c n-1 c 1 c 0 dove i coefficienti c i possono essere 0 o 1 Il numero è: c n *2 n +... + c 2 *2 2 + c 1 *2 1 + c 0 *2 0 u con N cifre riesco a rappresentare i 2 N numeri da 0 a 2 N -1
Conversione da notazione binaria a decimale u Es. la sequenza binaria 1011 rappresenta il numero: 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 1*8 + 0*4 + 1*2 + 1*1 = 11 u Generalmente si indica: 1011 2 = 11 10
Conversione da decimale a binario u divido il numero per 2: il resto è la cifra c 0 u divido il risultato per 2: il resto è la cifra c 1 u divido il risultato per 2: il resto è la cifra c 2 u mi fermo quando il risultato è 0 (con resto 1)
Conversione da decimale a binario u Conversione di 29 10 29/2 = 14 R = 1 (c 0 ) 14/2 = 7 R = 0 (c 1 ) 7/2 = 3 R = 1 (c 2 ) 3/2 = 1 R = 1 (c 3 ) 1/2 = 0 R = 1 (c 4 ) u 11101 2
Conversione da decimale a binario u Infatti... 11101 2 = 1*24 + 1*2 3 + 1*2 2 + 0*2 1 + 1*2 0 =16 + 8 + 4 + 1 = 29 10
Aritmetica binaria u Somma tra numeri binari + 0 1 0 0 1 1 1 10
Somma tra numeri binari: alcuni esempi 1 0 1 + 1 = 1 0 1 + 1 1 = 1 0 0 0 1 1 0 1 0 + 1 0 1 = 1 1 1 1 1
Codifica dei numeri interi negativi u Prima soluzione: 1 bit per il segno, gli altri per il valore assoluto del numero u con quattro bit: 0000 +0 1000-0 0001 +1 1001-1 0010 +2 1010-2...... 0111 +7 1111-7
Codifica dei numeri interi negativi u due controindicazioni: 2 rappresentazioni dello 0 non si possono applicare le regole tradizionali per le operazioni aritmetiche: 0 0 1 0 + +2 1 0 1 1 = -3 1 1 0 1-5
Codifica dei numeri interi negativi: complemento a 2 u Rappresentazione in complemento a 2 (complemento a 1 + 1) bit più significativo (più a sx) per rappresentare il segno (0 per il +, 1 per il -) comune rappresentazione binaria per i numeri positivi per i numeri negativi: inversione dei restanti bit (0à1 e 1à0) e poi si somma 1 in alternativa: dati N bit, codifico in binario il numero risultato da 2 N num (es. Con 4 bit per codificare in complemento a 2-7 calcolo 16-7 = 9 e codifico 9 in binario: 1001)
Rappresentazione in complemento a 2: esempio u -5 con quattro bit il bit di segno è 1 u Conversione: 5 10 = 0101 2 u Inversione: 0101 à 1010 u Somma di 1: 1010 + 1 = 1011 u Verifica: + 5 à 0101 5 à 1011 = 0 = (1)0000
Conversione da complemento a 2 in decimale con segno u se prima cifra 0 à numero positivo à conversione solita (es. 0100 à +4) u se prima cifra 1 à numero negativo à inversione dei bit (tranne il primo) conversione da binario a decimale somma di 1
Conversione da complemento a 2 in decimale con segno: esempio u 1101 tolgo il bit di segno à 101 Inversione à 010 Conversione in decimale à 010 2 = 2 10 Somma à 2 + 1 = 3 Segno à -3
Rappresentazione in complemento a 2 u Con quattro bit: 0000 0 1000-8 0001 +1 1001-7 0010 +2 1010-6 0011 +3 1011-5 0100 +4 1100-4 0101 +5 1101-3 0110 +6 1110-2 0111 +7 1111-1
In generale u Con N bit ho 2 N configurazioni possibili u Considerando interi positivi codifico i numeri da 0 a 2 N -1 u Considerando interi positivi e negativi (complemento a 2) codifico i numeri: positivi: da 0 a 2 N-1-1 negativi: da -2 N-1 a -1
Operatori booleani La logica booleana è alla base della costruzione degli elaboratori digitali. La variabile booleana può assumere solo due stati (1/0, vero/falso, acceso/spento). AND (congiunzione logica): prevede due o più variabili in input e una sola variabile in output. Restituisce Vero (oppure 1) se tutte le variabili di Input sono vere (oppure 1), restituisce Falso negli altri casi. Es.: l esame ha esito positivo se supero scritto e orale. SCRITTO (INPUT) ORALE (INPUT) ESITO (OUTPUT) SUPERATO (VERO) SUPERATO (VERO) POSITIVO (VERO) SUPERATO (VERO) SUPERATO (FALSO) NEGATIVO (FALSO) SUPERATO (FALSO) SUPERATO (VERO) NEGATIVO (FALSO) SUPERATO (FALSO) SUPERATO (FALSO) NEGATIVO (FALSO) 25
Operatori booleani OR (disgiunzione inclusiva): prevede o più variabili in input e una sola variabile in output. Restituisce Vero (oppure 1) se almeno una delle variabili di Input è vera (oppure 1), restituisce Falso negli altri casi. Es.: indosso il cappotto se piove o fa freddo (o entrambi). PIOGGIA (INPUT) FREDDO (INPUT) CAPPOTTO (OUTPUT) SI (VERO) SI (VERO) INDOSSATO (VERO) SI (VERO) NO (FALSO) INDOSSSATO (VERO) NO (FALSO) SI (VERO) INDOSSATO (VERO) NO (FALSO) NO (FALSO) NON INDOSSATO (FALSO) 26
Operatori booleani NOT (negazione): ha una variabile in input ed una variabile in output. Restituisce un valore che è l opposto di quello ricevuto in input. 1! NOT! 0 0! NOT! 1 27