Avviso Informazioni per accedere al credito per l'acquisto di un pc sono disponibili sul sito: http://www.ict4university.gov.it/ iniziative/in-corso/diamoglicredito.aspx Lo trovate anche sulla mia pagina web sotto avvisi Versione: 14/10/10 Facoltà di Farmacia - Corso di Informatica 1 Un breve prologo, in due parti.... Prima parte Calcoliamo, con la macchina di Turing 3+2=? Versione: 14/10/10 Facoltà di Farmacia - Corso di Informatica 2 Rivediamo la macchina di Turing ... Un nastro infinito ed una unita' di lettura e scrittura Versione: 14/10/10 La macchina... 1. Legge il contenuto del nastro, una cella alla volta 2. Se la cella contiene un simbolo puo' cancellarlo 3. Se la cella e' vuota puo' scrivere un simbolo Versione: 14/10/10 1. Queste operazioni sono eseguite secondo certe regole, che dipendono dal problema che si vuole risolvere . 2. Quali regole vengano seguite dipende dallo stato in cui si trova la macchina. Versione: 14/10/10 In altre parole.... 1. Ogni stato equivale ad un diverso modo di comportarsi cioe' ad un diverso programma 2.La macchina puo' cambiare stato (sempre secondo certe regole) Versione: 14/10/10 Nel nostro caso...... Un unico simbolo “I” Due soli stati “A” e “B” Versione: 14/10/10 Posizione iniziale (P0) del nastro A vuote | | I | I | | I | I | I | | vuote 2 3 Il nastro va da sinistra a destra Versione: 14/10/10 Le regole dipendono dal problema: nel nostro caso sono ...... Versione: 14/10/10 A B Versione: 14/10/10 I vuota Va alla Cancella, cella successiva passa allo stato B e va alla cella successiva Va alla cella successiva Scrivi il simbolo I e fermati A P0 | | I | I | | I | I | I | | A P1 | | I | I | | I | I | I | | Cancella, passa allo stato B e prosegui Versione: 14/10/10 B quindi P2 | | I | I | | I | I | | | e poi B P3 | | I | I | | I | I | | | In P2 e P3 si passa semplicemente alla cella successiva Versione: 14/10/10 B P4 | | I | I | | I | I | | | Scrivi il simbolo I e fermati, per cui finalmente B P5 | | I | I | I | I | I | | | Versione: 14/10/10 5! Una macchina di Turing, “reale” Versione: 14/10/10 Versione: 14/10/10 Versione: 14/10/10 Seconda parte Un micro-ripasso su 1. operazioni con potenze 2. logaritmi Versione: 14/10/10 Versione: 14/10/10 In particolare useremo le potenze 2 2 Versione: 14/10/10 k Potenze di 2 Potenza 20 21 22 23 24 25 26 27 28 … Valore 1 2 2*2 = 4 2*2*2 = 8 2*2*2*2 = 16 2*2*2*2*2 = 32 2*…*2 = 64 2*…*2 = 128 2*…*2 = 256 … Facoltà di Farmacia - Corso di Informatica 20 Passiamo ai logaritmi b e' il numero cui bisogna elevare a (la base) per ottenere x Versione: 14/10/10 Ad esempio, in base 10 Noi pero' useremo la base 2... Versione: 14/10/10 Rappresentazione delle informazioni Riferimenti: Console cap. 2 Versione: 14/10/10 Facoltà di Farmacia - Corso di Informatica 23 Tipi di segnali • Segnali digitali insieme discreto di valori, ad esempio due stati – semplici da distinguere – Es.: interruttore on/off – • Segnali analogici – insieme continuo di valori, trasmettono molte informazioni – sensibili alle interferenze – Es.: variatore di luminosità Facoltà di Farmacia - Corso di Informatica 24 Digitale e analogico • Digitale o analogico? – – – – accensione di una vettura lancette di un orologio tasti di una calcolatrice volume di uno stereo • Vantaggi del digitale: – semplice – non ambiguo (non sensibile alle interferenze) – riproducibile senza errori Facoltà di Farmacia - Corso di Informatica 25 Il bit Segnale binario: binario segnale discreto su due valori bit: binary digit (cifra binaria) Elemento di base per rappresentare le informazioni Facoltà di Farmacia - Corso di Informatica 26 Il bit Perché il sistema binario? • è semplice • può rappresentare quasi ogni informazione Facoltà di Farmacia - Corso di Informatica 27 Come viene realizzato un bit • direzione di magnetizzazione • presenza/ assenza di corrente/tensione •passaggio/non passaggio di luce Facoltà di Farmacia - Corso di Informatica 28 Rappresentazione delle informazioni Un bit rappresenta 2 possibili informazioni Es.: sì/no, on/off, su/giù, vero/falso Combinando più bit si rappresentano più informazioni. 2 bit 4 informazioni: 00, 01, 10, 11 Es.: Un esame con 4 possibili esiti: insufficiente (00), sufficiente (01), buono (10), ottimo (11) La corrispondenza concetto/configurazione di bit è una convenzione! Facoltà di Farmacia - Corso di Informatica 29 Problema: misurare in maniera precisa l'informazione. Fortunatamente il problema e' stato risolto da Shannon nel 1948 Supponiamo di avere N eventi possibili 1) lancio di una moneta N=2 2) lancio di un dado N=6 Prima del lancio : Informazione (riguardo l'evento) =0 * a meno che non bariamo Il verificarsi di un evento e' messaggio che ci manda la natura Il verificarsi di un evento rimuove la nostra incertezza Come possiamo calcolare Incertezza prima dell'evento=informazione guadagnata? Definizione di Shannon N e' il numero di possibili eventi che possono accadere o messaggi che possono essere ricevuti NB: Questa formula vale solo se tutti gli eventi sono equiprobabili! H e' chiamata Informazione o, piu' correttamente, Entropia; tanto per ripeterci, misura l' incertezza a priori sul verificarsi di un evento = l'informazione a posteriori guadagnata con l'osservazione (di un particolare evento ) Dalla formula e' chiaro che al crescere del numero di eventi possibili N anche H cresce. Ad esempio nel caso del lancio di una moneta N=2 un bit di informazione In generale l'andamento di H e' rappresentabile con un grafico Al crescere di N cresce H Per N fissato, l'informazione (entropia) e' massima In caso di eventi equiprobabili Rappresentazione delle informazioni Con 1 bit si rappresentano 2 informazioni Con 2 bit si rappresentano 4 informazioni (22) Con 3 bit si rappresentano 8 informazioni (23) … Con N bit si rappresentano 2N informazioni Facoltà di Farmacia - Corso di Informatica 40 Rappresentazione delle informazioni Per rappresentare K informazioni, si deve utilizzare un numero di bit sufficiente per esprimerle tutte, per cui devo scegliere N in modo che 2N ≥ K Facoltà di Farmacia - Corso di Informatica 41 Esempio Per rappresentare 61 informazioni diverse si devono usare N bit tali che 2N ≥ 61 5 bit non sono sufficienti, infatti 25 = 32 < 61 Occorrono almeno 6 bit, infatti 26 = 64 ≥ 61 Un insieme di 6 bit può assumere 64 configurazioni diverse: 000000 / 000001 / 000010 /… / 111110 / 111111 Alcune sequenze (la 62a, la 63a e la 64a) non vengono utilizzate Facoltà di Farmacia - Corso di Informatica 42 Prove d'esame! Rappresentazione delle informazioni Riassumendo: • 1 bit può assumere 2 valori • N bit possono assumere 2N valori, che permettono di rappresentare 2N informazioni Quindi: Per rappresentare K informazioni, si devono usare N bit, in modo che 2N ≥ K Facoltà di Farmacia - Corso di Informatica 44 Il Byte È stato attribuito un significato particolare ai gruppi di 8 bit; 8 bit formano un byte 8 bit 28 = 256 informazioni diverse Il byte viene utilizzato - insieme al bit - come unità di misura per esprimere la capacità della memoria, la potenza di un calcolatore, la velocità di trasmissione di una linea Facoltà di Farmacia - Corso di Informatica 45 Unità di misura (bit) Valore Nome 1 bit 1.024 1.048.576 1.073.741.824 1.099.511.627.776 Abbreviazione Potenza b 20 Kilobit Kb 210 (kibibit) (Kib) Megabit Mb (Mebibit) (Mib) Gigabit Gb (Gibibit) (Gib) Terabit Tb (Tebibit) (Tib) 220 230 240 Tra parentesi la nomenclatura standard ma meno usuale Facoltà di Farmacia - Corso di Informatica 46 Unità di misura (byte) analoghe al bit. (1 byte = 8 bit) Valore Nome 1 byte 1.024 1.048.576 1.073.741.824 1.099.511.627.776 Abbreviazione Potenza B 20 Kilobyte KB 210 (kibibyte) (KiB) Megabyte MB (Mebibyte) (MiB) Gigabyte GB (Gibibyte) (GiB) Terabyte TB (Tebibyte) (TiB) 220 230 240 Tra parentesi la nomenclatura standard ma meno usuale Facoltà di Farmacia - Corso di Informatica 47 Altra prova Per concludere ...... Informazione e DNA Rappresentazione dei numeri Ci serve una rappresentazione adatta all’elaboratore, ma prima di tutto ci serve fare un po’ di chiarezza sui problemi legati alla rappresentazione dei numeri. Iniziamo con il distinguere tra numerale e numero. numero numerale: numerale simbolo che rappresenta un numero • I numerali differiscono dai numeri come le parole differiscono dai concetti che rappresentano • Es.: 6, sei, VI, six rappresentano tutti lo stesso numero “What’s in a name? That which we call a rose by any other name would smell as sweet.” Facoltà di Farmacia - Corso di Informatica 50 Notazione Posizionale Obiettivo: Stiamo cercando un modo efficiente di rappresentare i numeri (i.e. delle quantità). Soluzione inefficiente: usiamo un simbolo per indicare un oggetto. Es. Scriviamo III per indicare il numero tre. Scriviamo IIIII per indicare il numero cinque. Scriviamo IIIIIIIIII per indicare il numero dieci. … Problema: Utilizziamo “tanti simboli” quanti sono gli oggetti. Non è una soluzione praticabile quando gli oggetti sono nell’ordine dei milioni. Facoltà di Farmacia - Corso di Informatica 51 Notazione Posizionale Posizione 2 1 Facoltà di Farmacia - Corso di Informatica 0 52 Notazione Posizionale La notazione posizionale non è l’unica possibile (es. i numeri romani non sono in notazione posizionale) Vantaggi della notazione posizionale: – Efficiente - Il numero di oggetti indicato cresce esponenzialmente con il numero di cifre usate – Potente - Gli “algoritmi” che implementano le quattro operazioni sono “semplici” Facoltà di Farmacia - Corso di Informatica 53 Il sistema di numerazione decimale • Decimale: Decimale “alfabeto” di 10 cifre ⇒ 0, 1, 2, …, 9 • numerale 245: 245 – 2 centinaia, 4 decine, 5 unità cioè – 2 volte 102+ 4 volte 101+ 5 volte 100 • La potenza di 10 da considerare dipende dalla posizione della cifra Facoltà di Farmacia - Corso di Informatica 54 Il sistema di numerazione decimale • Notazione posizionale: posizionale la posizione di una cifra in un numerale indica il suo peso in potenze di 10 I pesi sono: – unità = 100 = 1 (posizione 0) – decine = 101 = 10 (posizione 1) – centinaia = 102 = 100 (posizione 2) – migliaia – … = 103 = 1000 … … … Facoltà di Farmacia - Corso di Informatica (posizione 3) … … … 55 Rappresentazione decimale Il numerale 3704 in notazione decimale (= in base 10) 10 rappresenta la quantità: 3704 (numerale) numerale = 3*103 + 7*102 + 0*101 + 4*100 = 3000 + 700 + 0 + 4 = 3704 (numero) numero N.B.: Di norma utilizziamo un unico sistema (quello decimale) per la rappresentazione dei numeri. Pertanto è comune “confondere” numero e numerale. In realtà esiste un numero infinito di modi di rappresentare lo stesso numero. Se vogliamo evitare ambiguità, usiamo la notazione 370410 Facoltà di Farmacia - Corso di Informatica 56 Il sistema di numerazione binario • Binario: Binario “alfabeto” di 2 cifre di base ⇒ 0, 1 numerale 1012: – 1 volta 22, 0 volte 21, 1 volta 20 • La potenza di 2 da considerare dipende dalla posizione della cifra Facoltà di Farmacia - Corso di Informatica 57 Il sistema di numerazione binario • Notazione posizionale: posizionale la posizione di una cifra in un numerale indica il suo peso in potenze di 2 I pesi sono: – 20 = 1 (posizione 0) – 21 = 2 (posizione 1) – 22 = 4 (posizione 2) – 23 = 8 – … … (posizione 3) … … Facoltà di Farmacia - Corso di Informatica 58 Rappresentazione binaria Il numerale 100100112 in notazione binaria (o in base 2) rappresenta la quantità: 100100112 (numerale) numerale = 1*27 + 0*26 + 0*25 + 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 128 + 0 + 0 + 16 + 0 + 0 + 2 + 1 = 147 (numero) numero Facoltà di Farmacia - Corso di Informatica 59 Rappresentazione binaria Facoltà di Farmacia - Corso di Informatica 60 Massimo numero rappresentabile Massimo numero rappresentabile: il numero più grande esprimibile con un dato numero di cifre (decimali, binarie, …) NON coincide con il numero di informazioni rappresentabili! Per esempio, con 2 cifre decimali rappresento 100 numeri distinti, ma il numero più grande che posso rappresentare utilizzando la notazione decimale a due cifre è 9910 (Questo perché si inizia a contare da 0) Facoltà di Farmacia - Corso di Informatica 61 Massimo numero rappresentabile Numeri a 2 cifre • Sistema decimale: – 100 (102) numeri diversi – da 010 a 9910 , cioè da 0 a 102 – 1 – massimo numero rappresentabile: 102 – 1 • Sistema binario: – 4 (22) numeri diversi – da 02 a 112 (da 0 a 3), cioè da 0 a 22 – 1 – massimo numero rappresentabile: 22 – 1 Facoltà di Farmacia - Corso di Informatica 62 Massimo numero rappresentabile Numeri a N cifre • Sistema decimale: – 10N numeri diversi – da 010 a 9…910, cioè da 0 a 10N – 1 N – massimo numero rappresentabile: 10N – 1 • Sistema binario: – 2N numeri diversi – da 02 a 1…12, cioè da 0 a 2N – 1 N – massimo numero rappresentabile: 2N – 1 Facoltà di Farmacia - Corso di Informatica 63 Massimo numero rappresentabile Esempio con 8 cifre: 111111112 (8 bit) = 28 -1 = 25510 Per rappresentare il numero 25610 ci vuole un bit in più: 25610 = 1000000002 = 1*28 Facoltà di Farmacia - Corso di Informatica 64 Riassumendo... Definendo il numero di cifre con cui si rappresentano i numeri, si definisce anche il massimo numero rappresentabile: • con 16 bit: 216-1 = 65.535 • con 32 bit: 232-1 = 4.294.967.295 • con 64 bit: 264-1 = 18446744073709551615 ≈ 1,84 * 1019 È possibile rappresentare numeri più grandi a spese della precisione Facoltà di Farmacia - Corso di Informatica 65 Incoraggiamento “In mathematics you don’t understand things. You just get used to them.” John von Neumann, matematico e pioniere dell’Informatica Facoltà di Farmacia - Corso di Informatica 67 Sistema decimale Numerale 34510 Facoltà di Farmacia - Corso di Informatica 68 Sistema decimale Numerale 34510 posizione: 2 1 Facoltà di Farmacia - Corso di Informatica 0 69 Sistema decimale Numerale 34510 posizione: 2 1 Facoltà di Farmacia - Corso di Informatica 0 70 Sistema decimale Numerale 34510 posizione: 2 1 Facoltà di Farmacia - Corso di Informatica 0 71 Sistema decimale Numerale 34510 posizione: 2 102 102 102 1 0 3 Facoltà di Farmacia - Corso di Informatica 72 Sistema decimale Numerale 34510 posizione: 2 102 102 102 1 0 3 cifra del numerale Facoltà di Farmacia - Corso di Informatica 73 Sistema decimale Numerale 34510 posizione: 2 102 102 102 1 0 3 posizione cifra del numerale Facoltà di Farmacia - Corso di Informatica 74 Sistema decimale Numerale 34510 posizione: 2 102 102 102 base 1 0 3 posizione cifra del numerale Facoltà di Farmacia - Corso di Informatica 75 Sistema decimale Numerale 34510 posizione: 2 1 102 102 102 101 101 101 101 3 0 4 Facoltà di Farmacia - Corso di Informatica 76 Sistema decimale Numerale 34510 posizione: 2 102 102 102 3 1 0 101 101 101 101 100 100 100 100 100 4 Facoltà di Farmacia - Corso di Informatica 5 77 Sistema decimale Numerale 34510 posizione: 2 102 102 102 3 1 0 101 101 101 101 100 100 100 100 100 4 5 Numero: 3*102 Facoltà di Farmacia - Corso di Informatica 78 Sistema decimale Numerale 34510 posizione: 2 102 102 102 Numero: 3*102 3 1 0 101 101 101 101 100 100 100 100 100 4 5 4*101 Facoltà di Farmacia - Corso di Informatica 79 Sistema decimale Numerale 34510 posizione: 2 102 102 102 Numero: 3*102 3 4*101 1 0 101 101 101 101 100 100 100 100 100 4 5 5*100 Facoltà di Farmacia - Corso di Informatica 80 Sistema decimale Numerale 34510 posizione: 2 102 102 102 3 1 0 101 101 101 101 100 100 100 100 100 4 5 Numero: 3*102 + 4*101 + 5*100 Facoltà di Farmacia - Corso di Informatica 81 Sistema decimale Numerale 34510 posizione: 2 102 102 102 3 1 0 101 101 101 101 100 100 100 100 100 4 5 Numero: 3*102 + 4*101 + 5*100 =345 Facoltà di Farmacia - Corso di Informatica 82 Sistema binario Numerale 1112 Facoltà di Farmacia - Corso di Informatica 83 Sistema binario Numerale 1112 posizione: 2 1 Facoltà di Farmacia - Corso di Informatica 0 84 Sistema binario Numerale 1112 posizione: 2 1 Facoltà di Farmacia - Corso di Informatica 0 85 Sistema binario Numerale 1112 posizione: 2 22 base 1 0 1 posizione cifra del numerale Facoltà di Farmacia - Corso di Informatica 86 Sistema binario Numerale 1112 posizione: 2 22 1 1 21 0 1 Facoltà di Farmacia - Corso di Informatica 87 Sistema binario Numerale 1112 posizione: 2 22 1 1 21 0 1 Facoltà di Farmacia - Corso di Informatica 20 1 88 Sistema binario Numerale 1112 posizione: 2 22 Numero: 1 1 21 0 1 20 1 1*22 Facoltà di Farmacia - Corso di Informatica 89 Sistema binario Numerale 1112 posizione: 2 22 Numero: 1*22 1 1 21 0 1 20 1 1*21 Facoltà di Farmacia - Corso di Informatica 90 Sistema binario Numerale 1112 posizione: 2 22 Numero: 1*22 1 1 1*21 21 0 1 20 1 1*20 Facoltà di Farmacia - Corso di Informatica 91 Sistema binario Numerale 1112 posizione: 2 22 Numero: 1 1 21 0 1 20 1 1*22 + 1*21 + 1*20 Facoltà di Farmacia - Corso di Informatica 92 Sistema binario Numerale 1112 posizione: 2 22 Numero: 1 1 21 0 1 20 1 1*22 + 1*21 + 1*20 = =4 + 2 + 1 = 7 Facoltà di Farmacia - Corso di Informatica 93 Conversione da base 2 a base 10 • È sufficiente moltiplicare ogni bit per il suo peso e sommare. Facoltà di Farmacia - Corso di Informatica 94 Conversione da base 2 a base 10 • È sufficiente moltiplicare ogni bit per il suo peso e sommare. Esempio: 110102 = Facoltà di Farmacia - Corso di Informatica 95 Conversione da base 2 a base 10 • È sufficiente moltiplicare ogni bit per il suo peso e sommare. Esempio: 110102 = 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = Facoltà di Farmacia - Corso di Informatica 96 Conversione da base 2 a base 10 • È sufficiente moltiplicare ogni bit per il suo peso e sommare. Esempio: 110102 = 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = = 16 + 8 + 2 = 2610 = 26 Facoltà di Farmacia - Corso di Informatica 97 Conversione da base 2 a base 10 • È sufficiente moltiplicare ogni bit per il suo peso e sommare. Esempio: 110102 = 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = = 16 + 8 + 2 = 2610 = 26 • Somma di potenze di 2! 2 Facoltà di Farmacia - Corso di Informatica 98 Conversione da base 2 a base 10 • È sufficiente moltiplicare ogni bit per il suo peso e sommare. Esempio: 110102 = 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = = 16 + 8 + 2 = 2610 = 26 • Somma di potenze di 2! 2 Notiamo: • un numero la cui rappresentazione binaria termina con 0 è pari, altrimenti (con 1) è dispari • il resto della divisione di un numero per 2 è 0 se il numero è pari, 1 se è dispari • Il resto della divisione di un numero per 2 è 0 se l’ultima cifra della sua rappresentazione binaria è 0, il resto è 1 se l’ultima cifra è 1. Facoltà di Farmacia - Corso di Informatica 99 Conversione da base 10 a base 2 • Idea: effettuiamo divisioni successive per 2 del numero N e consideriamo i resti Facoltà di Farmacia - Corso di Informatica 100 Conversione da base 10 a base 2 • Idea: effettuiamo divisioni successive per 2 del numero N e consideriamo i resti • Algoritmo: – Passo 1: Dividere N per 2 e memorizzare il resto Facoltà di Farmacia - Corso di Informatica 101 Conversione da base 10 a base 2 • Idea: effettuiamo divisioni successive per 2 del numero N e consideriamo i resti • Algoritmo: – Passo 1: Dividere N per 2 e memorizzare il resto – Passo 2: Ripetere il passo 1 finché il numero diventa 0 Facoltà di Farmacia - Corso di Informatica 102 Conversione da base 10 a base 2 • Idea: effettuiamo divisioni successive per 2 del numero N e consideriamo i resti • Algoritmo: – Passo 1: Dividere N per 2 e memorizzare il resto – Passo 2: Ripetere il passo 1 finché il numero diventa 0 – Passo 3: Prendere i resti in ordine inverso e scriverli da sinistra a destra Facoltà di Farmacia - Corso di Informatica 103 Conversione da base 10 a base 2 • Consideriamo il numerale 19010: Facoltà di Farmacia - Corso di Informatica 104 Conversione da base 10 a base 2 • Consideriamo il numerale 19010: 190/2 = 95 resto 0 Facoltà di Farmacia - Corso di Informatica 105 Conversione da base 10 a base 2 • Consideriamo il numerale 19010: 190/2 = 95 resto 0 95/2 = 47 resto 1 Facoltà di Farmacia - Corso di Informatica 106 Conversione da base 10 a base 2 • Consideriamo 190/2 = 95/2 = 47/2 = il numerale 19010: 95 resto 0 47 resto 1 23 resto 1 Facoltà di Farmacia - Corso di Informatica 107 Conversione da base 10 a base 2 • Consideriamo 190/2 = 95/2 = 47/2 = 23/2 = il numerale 19010: 95 resto 0 47 resto 1 23 resto 1 11 resto 1 Facoltà di Farmacia - Corso di Informatica 108 Conversione da base 10 a base 2 • Consideriamo 190/2 = 95/2 = 47/2 = 23/2 = 11/2 = il numerale 19010: 95 resto 0 47 resto 1 23 resto 1 11 resto 1 5 resto 1 Facoltà di Farmacia - Corso di Informatica 109 Conversione da base 10 a base 2 • Consideriamo 190/2 = 95/2 = 47/2 = 23/2 = 11/2 = 5/2 = il numerale 19010: 95 resto 0 47 resto 1 23 resto 1 11 resto 1 5 resto 1 2 resto 1 Facoltà di Farmacia - Corso di Informatica 110 Conversione da base 10 a base 2 • Consideriamo 190/2 = 95/2 = 47/2 = 23/2 = 11/2 = 5/2 = 2/2 = il numerale 19010: 95 resto 0 47 resto 1 23 resto 1 11 resto 1 5 resto 1 2 resto 1 1 resto 0 Facoltà di Farmacia - Corso di Informatica 111 Conversione da base 10 a base 2 • Consideriamo 190/2 = 95/2 = 47/2 = 23/2 = 11/2 = 5/2 = 2/2 = 1/2 = il numerale 19010: 95 resto 0 47 resto 1 23 resto 1 11 resto 1 5 resto 1 2 resto 1 1 resto 0 0 resto 1 Facoltà di Farmacia - Corso di Informatica 112 Conversione da base 10 a base 2 • Consideriamo il numerale 19010: 190/2 = 95 resto 0 95/2 = 47 resto 1 47/2 = 23 resto 1 23/2 = 11 resto 1 11/2 = 5 resto 1 5/2 = 2 resto 1 2/2 = 1 resto 0 1/2 = 0 resto 1 • Leggiamo i resti dal basso verso l’alto: Facoltà di Farmacia - Corso di Informatica 113 Conversione da base 10 a base 2 • Consideriamo il numerale 19010: 190/2 = 95 resto 0 95/2 = 47 resto 1 47/2 = 23 resto 1 23/2 = 11 resto 1 11/2 = 5 resto 1 5/2 = 2 resto 1 2/2 = 1 resto 0 1/2 = 0 resto 1 • Leggiamo i resti dal basso verso l’alto: la rappresentazione binaria del numerale 19010 è 101111102 Facoltà di Farmacia - Corso di Informatica 114 Perché funziona? Il numero che vogliamo rappresentare ha una rappresentazione binaria del tipo xNxN-1 …x1x0 Il numero si può pensare come la somma di potenze di due: xN*2N+xN-1 *2N-1 +…+x1*21+x0*20 Facoltà di Farmacia - Corso di Informatica 115 Perché funziona? Noi siamo interessati a trovare x0,x1,x2,etc. Proviamo a dividere il numero per due e vediamo cosa succede (xN*2N+xN-1 *2N-1 +…+x1*21+x0*20)/2 = xN*2N-1 +xN-1 *2N-2 +…+x1*20 con resto x0 Notiamo: • Il resto della divisione è pari alla cifra meno significativa del numero che cerchiamo • Il risultato della divisione ha le stesse cifre binarie del numero originale (tranne l’ultima), ma queste sono “spostate” tutte a destra di una posizione. Facoltà di Farmacia - Corso di Informatica 116 Proviamo a sommare due numeri in notazione binaria 101+ 11=? Possiamo fare in due modi! 1. Trasformiamo i numeri in notazione decimale sommiamo e ritrasformiamo in binario 1012 = 112 = 5 10 + 310 = 8 10 Ritrasformando 810 = 1000 2 Oppure possiamo calcolare la somma usando le regole di calcolo in binario 11 101 + 11 1000 riporto Qualche semplice esercizio.... Dati 6 bit, quante informazioni distinte si possono rappresentare? Quante informazioni distinte si possono rappresentare con un byte? Quanti bit si devono utilizzare per rappresentare 20 informazioni distinte? ed ancora.... Codificate i seguenti numeri nella corrispondente rappresentazione decimale: – 1012 – 10112 – 11012 – 100000012 – 110011002 – 111111112 Codificate i seguenti numeri nella corrispondente rappresentazione binaria: – 810 – 710 – 6010 – 28110 Verificate i risultati convertendoli nella rappresentazione decimale. • Dato il numero 86210 qual è il numero minimo di bit che si devono usare per la sua rappresentazione binaria? Facoltà di Farmacia - Corso di Informatica 122 e per finire ........ Calcolare 1100 +1101 (binari!) nei due modi spiegati a lezione Numeri positivi e negativi Problema • Come rappresentare anche i numeri negativi? Facoltà di Farmacia - Corso di Informatica 126 Numeri positivi e negativi Problema • Come rappresentare anche i numeri negativi? Soluzione ingenua (provvisoria) Usiamo: • 1 bit per rappresentare il segno • gli altri bit per rappresentare il valore assoluto del numero Facoltà di Farmacia - Corso di Informatica 127 Numeri positivi e negativi Il segno viene rappresentato dal bit più significativo (MSB), il bit più a sinistra: • 0 indica un numero positivo • 1 indica un numero negativo Facoltà di Farmacia - Corso di Informatica 128 Numeri positivi e negativi Il segno viene rappresentato dal bit più significativo (MSB), il bit più a sinistra: • 0 indica un numero positivo • 1 indica un numero negativo Problema: due rappresentazioni dello 0: -0, +0 Facoltà di Farmacia - Corso di Informatica 129 Numeri positivi e negativi Il segno viene rappresentato dal bit più significativo (MSB), il bit più a sinistra: • 0 indica un numero positivo • 1 indica un numero negativo Problema: due rappresentazioni dello 0: -0, +0 Occorre una rappresentazione diversa: Complemento a due Facoltà di Farmacia - Corso di Informatica 130 Rappresentazione in complemento a due Anziché usare un byte per rappresentare i numeri da 0 a 255, lo usiamo per i numeri da -128 a 127: da 000000002 = 010 a 011111112 = 12710 e da 100000002 = -12810 a 111111112 = -110 Facoltà di Farmacia - Corso di Informatica 131 Rappresentazione in complemento a due Ad es., anziché usare un byte per rappresentare i numeri da 0 a 255, lo usiamo per i numeri da -128 a 127: Usiamo le configurazioni da 000000002 a 01111112 per rappresentare i numeri positivi da 010 a 12710 Usiamo le configurazioni da 100000002 a 111111112 per rappresentare i numeri negativi da -110 a -12810 Analogamente: usando 16 bit rappresentiamo da –215 a 215 – 1 cioè da –32768 a +32767 usando 32 bit rappresentiamo da –231 a 231 – 1 cioè da –2.147.483.648 a +2.147.483.647 usando N bit rappresentiamo da –2N-1 a 2N-1 – 1 Facoltà di Farmacia - Corso di Informatica 132 Rappresentazione in complemento a due Come realizzo praticamente questa idea? 1. Lasciamo inalterati la codifica dei numeri positivi Facoltà di Farmacia - Corso di Informatica 133 Rappresentazione in complemento a due Come realizzo praticamente questa idea? 1. Lasciamo inalterati la codifica dei numeri positivi. Esempio: Supponiamo di volere usare 3 bit per la codifica. Possiamo codificare 8 valori: -4,-3,-2,-1,0,1,2,3 Lasciando inalterata la codifica dei numeri positivi otteniamo: 000 0 001 1 010 2 011 3 Facoltà di Farmacia - Corso di Informatica 134 Rappresentazione in complemento a due Come realizzo praticamente questa idea? 1. Lasciamo inalterati la codifica dei numeri positivi 2. Per rappresentare i numeri negativi abbiamo a disposizione i numerali 100 101 110 111 Facoltà di Farmacia - Corso di Informatica 135 Rappresentazione in complemento a due Come realizzo praticamente questa idea? 1. Lasciamo inalterati la codifica dei numeri positivi 2. Per rappresentare i numeri negativi abbiamo a disposizione i numerali 100 101 110 111 -1 -2 -3 -4 Possibile codifica Facoltà di Farmacia - Corso di Informatica 136 Rappresentazione in complemento a due Come realizzo praticamente questa idea? 1. Lasciamo inalterati la codifica dei numeri positivi 2. Per rappresentare i numeri negativi abbiamo a disposizione i numerali 100 101 110 111 -1 -2 -3 -4 Possibile codifica Facoltà di Farmacia - Corso di Informatica 137 Rappresentazione in complemento a due Come realizzo praticamente questa idea? 1. Lasciamo inalterati la codifica dei numeri positivi 2. Per rappresentare i numeri negativi abbiamo a disposizione i numerali 100 101 110 111 -4 -3 -2 -1 Codifica in complemento a 2 Facoltà di Farmacia - Corso di Informatica 138 Rappresentazione in complemento a due Quindi 100 101 110 111 -4 -3 -2 -1 000 001 010 011 0 1 2 3 Facoltà di Farmacia - Corso di Informatica 139 Rappresentazione in complemento a due Ulteriore prospettiva: Facoltà di Farmacia - Corso di Informatica 140 Rappresentazione in complemento a due Ulteriore prospettiva: Facoltà di Farmacia - Corso di Informatica 141 Dato un numero positivo come si ottiene il corrispondente negativo? Con tre facili passi! 1. Si rappresenta il numero in complemento a due (quindi con uno 0 come primo bit) 2. Si invertono tutti i bit, cioe' si pone 0 al posto di 1 e viceversa 3. Si somma 1 al risultato cosi' ottenuto Esempio: rappresentazione di -5 1. Con 4 bits la rappresentazione in complemento a due di +5 e' 0101 Indica che il numero e' positivo 2. Invertendo tutti i bits si ottiene 1010 3. Aggiungendo 1 si ha 1011 Nel caso di -3 1. +3 in notazione binaria in complemento a due e' 011 2. invertendo i bits si ottiene 100 3. infine aggiungendo 1 ottengo 101 In definitiva, per la codifica da -4 a +3 1. Considero sequenze di 3 bit: assegno ai numeri positivi quelle che cominciano con 0 e ai negativi quelle che iniziano con 1. 2. Codifico i numeri positivi (compreso lo 0) con il metodo usuale. 3. Utilizzo l'algoritmo che abbiamo appena visto per ottenere -1, -2, -3 4. E -4? Facile, gli assegno l'ultimo simbolo rimasto cioe' 100 Quindi 0 1 2 3 000 001 010 011 111 110 101 100 -1 -2 -3 -4 Importante: la codifica complemento a due dipende in modo cruciale dal numero di bit che usiamo Ad esempio, con 4 bit: 3=0011 e applicando la regola di trasformazione -3=1101 Tuttavia le regole sono sempre le stesse. Ad esempio con 4 bit 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 1111 1110 1101 1100 1011 1010 1001 1000 -1 -2 -3 -4 -5 -6 -7 -8 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) Facoltà di Farmacia - Corso di Informatica 149 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) • se il numero è positivo, fare conversione usuale 000 001 010 011 Facoltà di Farmacia - Corso di Informatica 0 1 2 3 150 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) • se il numero è positivo, fare conversione usuale • se il numero è negativo, Facoltà di Farmacia - Corso di Informatica 151 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) • se il numero è positivo, fare conversione usuale • se il numero è negativo, – fare conversione usuale e sottrarre 2N Facoltà di Farmacia - Corso di Informatica 152 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) • se il numero è positivo, fare conversione usuale • se il numero è negativo, – fare conversione usuale e sottrarre 2N 100 101 110 111 4-23 5-23 6-23 7-23 Facoltà di Farmacia - Corso di Informatica = = = = -4 -3 -2 -1 153 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) • se il numero è positivo, fare conversione usuale • se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, cambiare segno Facoltà di Farmacia - Corso di Informatica 154 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, cambiare segno Esempi: 010011012 Facoltà di Farmacia - Corso di Informatica 155 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, cambiare segno Esempi: 010011012 Facoltà di Farmacia - Corso di Informatica 156 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, cambiare segno Esempi: 010011012 = 7710 Facoltà di Farmacia - Corso di Informatica 157 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, cambiare segno Esempi: 100010102 Facoltà di Farmacia - Corso di Informatica 158 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, cambiare segno Esempi: 100010102 Facoltà di Farmacia - Corso di Informatica 159 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, cambiare segno Esempi: 100010102 Facoltà di Farmacia - Corso di Informatica 160 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, cambiare segno Esempi: 100010102 ⇒ 13810 Facoltà di Farmacia - Corso di Informatica 161 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, cambiare segno Esempi: 100010102 ⇒ 13810 - 25610 Facoltà di Farmacia - Corso di Informatica 162 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, cambiare segno Esempi: 100010102 ⇒ 13810 - 25610 = -11810 Facoltà di Farmacia - Corso di Informatica 163 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, cambiare segno Esempi: 100010102 Facoltà di Farmacia - Corso di Informatica 164 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), 0) fare conversione usuale, sommare 1, cambiare segno Esempi: 100010102⇒011101012 Facoltà di Farmacia - Corso di Informatica 165 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, usuale sommare 1, cambiare segno Esempi: 100010102⇒011101012 ⇒ 11710 Facoltà di Farmacia - Corso di Informatica 166 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, 1 cambiare segno Esempi: 100010102⇒011101012⇒11710+1=11810 Facoltà di Farmacia - Corso di Informatica 167 Conversione da complemento a due su N bit a decimale Il bit più significativo identifica il segno (0+, 1–) •se il numero è positivo, fare conversione usuale •se il numero è negativo, – fare conversione usuale e sottrarre 2N oppure – invertire i bit (0 1, 1 0), fare conversione usuale, sommare 1, cambiare segno Esempi: 100010102⇒011101012⇒11710 +1=11810 = -11810 Facoltà di Farmacia - Corso di Informatica 168 Vantaggi della codifica in complemento a due • “Facile” passare dalla rappresentazione decimale a quella in complemento a due e viceversa • L’operazione di somma (e di conseguenza la sottrazione, la moltiplicazione,…) rimane invariata (questa è una caratteristica molto importante di questa codifica) Facoltà di Farmacia - Corso di Informatica 169 L’operazione di somma rimane invariata! Es. 1+1 = 1 001 + 001 = 0 Facoltà di Farmacia - Corso di Informatica 170 L’operazione di somma rimane invariata! Es. 1+1 = 001 + 001 = 10 Facoltà di Farmacia - Corso di Informatica 171 L’operazione di somma rimane invariata! Es. 1+1 = 001 + 001 = 010 = 2 Facoltà di Farmacia - Corso di Informatica 172 L’operazione di somma rimane invariata! Es. 1+1 = 001 + 001 = 010 = 2 2-1 Facoltà di Farmacia - Corso di Informatica 173 L’operazione di somma rimane invariata! Es. 1+1 = 001 + 001 = 010 = 2 2-1 =2+(-1) Facoltà di Farmacia - Corso di Informatica 174 L’operazione di somma rimane invariata! Es. 1+1 = 2-1 =2+(-1)= 001 + 001 = 010 = 2 010 + 111 = Facoltà di Farmacia - Corso di Informatica 175 L’operazione di somma rimane invariata! Es. 1+1 = 2-1 =2+(-1)= 001 + 001 = 010 = 2 010 + 111 = 1 Facoltà di Farmacia - Corso di Informatica 176 L’operazione di somma rimane invariata! Es. 1+1 = 2-1 =2+(-1)= 001 + 001 = 010 = 2 1 010 + 111 = 01 Facoltà di Farmacia - Corso di Informatica 177 L’operazione di somma rimane invariata! Es. 1+1 = 2-1 =2+(-1)= 001 + 001 = 010 = 2 1 010 + 111 = 001 = 1 Facoltà di Farmacia - Corso di Informatica 178 Alcuni esercizi Codificate i seguenti numeri rappresentati in complemento a due nella corrispondente rappresentazione decimale: 1.1111002 2.0001002 3.1000112 4.1010102 5.0101012 6.1111112 0 0 0 0 e prove di esame ed anche .... ed infine.... Rappresentazione dei caratteri Facoltà di Farmacia - Corso di Informatica 183 Rappresentazione dei caratteri Per rappresentare i caratteri, occorre stabilire una convenzione per la corrispondenza tra configurazione di bit e carattere: codice ASCII (American Standard Code for Information Interchange) Facoltà di Farmacia - Corso di Informatica 184 Codice ASCII Usa i 7 bit meno significativi di un byte (27 = 128 diversi caratteri rappresentabili) Rappresenta – oltre ad altri caratteri – le lettere dell’alfabeto anglosassone maiuscole e minuscole, le cifre, i segni di punteggiatura Esiste un codice ASCII esteso, esteso che usa 8 bit, ma non è standard; cambia con la lingua usata Facoltà di Farmacia - Corso di Informatica 185 Codice ASCII Codice ASCII: ASCII esteso: esteso nelle parti scure Facoltà di Farmacia - Corso di Informatica 186 NB. Nella codifica ASCII non estesa si usano sequenze di 8 elementi ma il primo e' sempre 0: cosi il numero di bit realmente impiegati e' 7 Esempio: c=01100011 Rappresentazione dei caratteri Altri codici: UNICODE: UNICODE standard proposto per coprire le principali lingue (sistemi di scrittura): alfabeto latino, arabo, cirillico, ebraico, greco, hàn, hiragana e katakana, hangul, braille, IPA… – caratteri codificati con 1, 2 o 4 byte (il libro fa riferimento alla sola codifica a 2 byte) – attualmente rappresentati oltre 96000 caratteri Facoltà di Farmacia - Corso di Informatica 188 Esempio di codifica ASCII Codifica della parola ‘casa’: c 01100011 a 01100001 s 01110011 Facoltà di Farmacia - Corso di Informatica a 01100001 189 Esempio di codifica ASCII Codifica della parola ‘casa’: c 01100011 a 01100001 s 01110011 a 01100001 Il codice ASCII contiene anche la codifica per lo spazio (anch’esso è un carattere!, ASCII 32) e il simbolo di fine riga ‘CR’ (ASCII 13) Con questi caratteri è quindi possibile codificare un testo strutturato Facoltà di Farmacia - Corso di Informatica 190 Esempio di decodifica ASCII A partire da una sequenza di bit in codice ASCII, si vuole conoscere la rappresentazione in caratteri: 011010010110110000100000010100000110111100101110 Facoltà di Farmacia - Corso di Informatica 191 Esempio di decodifica ASCII A partire da una sequenza di bit in codice ASCII, si vuole conoscere la rappresentazione in caratteri: • si divide la sequenza in gruppi di 8 bit (ogni gruppo è un byte) 011010010110110000100000010100000110111100101110 Facoltà di Farmacia - Corso di Informatica 192 Esempio di decodifica ASCII A partire da una sequenza di bit in codice ASCII, si vuole conoscere la rappresentazione in caratteri: • si divide la sequenza in gruppi di 8 bit (ogni gruppo è un byte) 01101001 01101100 00100000 01010000 01101111 00101110 Facoltà di Farmacia - Corso di Informatica 193 Esempio di decodifica ASCII A partire da una sequenza di bit in codice ASCII, si vuole conoscere la rappresentazione in caratteri: • si divide la sequenza in gruppi di 8 bit (ogni gruppo è un byte) • si determina il carattere corrispondente a ogni gruppo 01101001 01101100 00100000 01010000 01101111 00101110 Facoltà di Farmacia - Corso di Informatica 194 Esempio di decodifica ASCII A partire da una sequenza di bit in codice ASCII, si vuole conoscere la rappresentazione in caratteri: • si divide la sequenza in gruppi di 8 bit (ogni gruppo è un byte) • si determina il carattere corrispondente a ogni gruppo 01101001 01101100 00100000 01010000 01101111 00101110 105=i 108=l 32= 80=P 111=o Facoltà di Farmacia - Corso di Informatica 46=. 195 Codifica ASCII dei numeri N.B.: le cifre da 0 a 9 rappresentate in ASCII sono caratteri (simboli) e non quantità numeriche, quindi: Facoltà di Farmacia - Corso di Informatica 196 Codifica ASCII dei numeri N.B.: le cifre da 0 a 9 rappresentate in ASCII sono caratteri (simboli) e non quantità numeriche, quindi: • NON possono essere utilizzati per rappresentare quantità da utilizzare in calcoli aritmetici • Non è così strano: tutti i giorni usiamo i numeri telefonici, che sono sequenze di simboli, con essi non facciamo calcoli aritmetici Facoltà di Farmacia - Corso di Informatica 197 Codifica ASCII dei numeri N.B.: le cifre da 0 a 9 rappresentate in ASCII sono caratteri (simboli) e non quantità numeriche, quindi: il numero ‘4’ è rappresentato in binario per mezzo del numerale 000001002 la cifra `4’ è rappresentata in ASCII dal codice 52=001101002 Facoltà di Farmacia - Corso di Informatica 198 Prove di esame Codifica delle immagini • Vi sono varie tecniche utilizzate per memorizzare in modo digitale un’immagine, e poi elaborarla • Per semplificare, immaginiamo di dover codificare un’immagine in bianco e nero (dual tone, con soli due colori) Facoltà di Farmacia - Corso di Informatica 201 Codifica delle immagini • L’immagine da codificare Facoltà di Farmacia - Corso di Informatica 202 Codifica delle immagini • L’immagine da codificare • viene suddivisa da una griglia formata da linee a distanza costante Facoltà di Farmacia - Corso di Informatica 203 Codifica delle immagini • Ogni quadrato derivante da tale suddivisione viene chiamato pixel (picture element) element e può essere codificato in binario con la convenzione che: • 0 rappresenta un pixel bianco • 1 rappresenta un pixel nero Facoltà di Farmacia - Corso di Informatica 204 Codifica delle immagini • Ogni quadrato derivante da tale suddivisione viene chiamato pixel (picture element) element e può essere codificato in binario con la convenzione che: • 0 rappresenta un pixel bianco (ovvero in cui il bianco è predominante) • 1 rappresenta un pixel nero (ovvero in cui il nero è predominante) Facoltà di Farmacia - Corso di Informatica 205 Codifica delle immagini Facoltà di Farmacia - Corso di Informatica 206 Codifica delle immagini Facoltà di Farmacia - Corso di Informatica 207 Codifica delle immagini Facoltà di Farmacia - Corso di Informatica 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 208 Codifica delle immagini 1 0 0 22 0 23 1 15 0 1 25 17 9 10 18 3 27 28 19 20 21 1 0 0 11 0 0 2 26 0 0 0 0 1 1 0 0 1 24 0 0 1 0 16 8 0 12 0 4 5 13 14 0 0 6 7 Problema: per avere una sequenza di bit, in quale ordine leggere i pixel? Occorre una convenzione: qui assumiamo da sinistra destra, e dal basso verso l’alto La rappresentazione della figura è quindi: 0000000 0111100 0110000 0100000 Facoltà di Farmacia - Corso di Informatica 209 Codifica delle immagini Non sempre il contorno della figura coincide con le linee della griglia Facoltà di Farmacia - Corso di Informatica 210 Codifica delle immagini Non sempre il contorno della figura coincide con le linee della griglia: digitalizzando un’immagine si ha sempre un’approssimazione dell’immagine stessa Facoltà di Farmacia - Corso di Informatica 211 Codifica delle immagini Non sempre il contorno della figura coincide con le linee della griglia: digitalizzando un’immagine si ha sempre un’approssimazione dell’immagine stessa 0 1 0 0 0 0 0 22 23 24 25 26 27 28 15 16 17 18 19 20 21 8 9 10 11 12 13 14 1 2 3 4 5 6 7 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 Facoltà di Farmacia - Corso di Informatica 212 Codifica delle immagini Non sempre il contorno della figura coincide con le linee della griglia: digitalizzando un’immagine si ha sempre un’approssimazione dell’immagine stessa 0 1 0 0 0 0 0 22 23 24 25 26 27 28 15 16 17 18 19 20 21 8 9 10 11 12 13 14 1 2 3 4 5 6 7 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0000000 0111100 0110000 0100000 Facoltà di Farmacia - Corso di Informatica 213 Codifica delle immagini Non sempre il contorno della figura coincide con le linee della griglia: digitalizzando un’immagine si ha sempre un’approssimazione dell’immagine stessa 0 1 0 0 0 0 0 22 23 24 25 26 27 28 15 16 17 18 19 20 21 8 9 10 11 12 13 14 1 2 3 4 5 6 7 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0000000 0111100 0110000 0100000 Facoltà di Farmacia - Corso di Informatica 214 Codifica delle immagini Problema. Come avere un’immagine più fedele? Facoltà di Farmacia - Corso di Informatica 215 Codifica delle immagini Problema. Come avere un’immagine più fedele? Idea. Aumentiamo la risoluzione, risoluzione cioè il numero dei pixel (e rimpiccioliamo i quadratini della griglia di campionamento) Facoltà di Farmacia - Corso di Informatica 216 Codifica delle immagini Problema. Come avere un’immagine più fedele? Idea. Aumentiamo la risoluzione, risoluzione cioè il numero dei pixel (e rimpiccioliamo i quadratini della griglia di campionamento) 7x4 14x8 zz Facoltà di Farmacia - Corso di Informatica 217 Codifica delle immagini Problema. Come avere un’immagine più fedele? Idea. Aumentiamo la risoluzione, risoluzione cioè il numero dei pixel (e rimpiccioliamo i quadratini della griglia di campionamento) 7x4 14x8 zz La rappresentazione di un’immagine mediante la codifica dei pixel viene chiamata codifica bitmap Facoltà di Farmacia - Corso di Informatica 218 Codifica delle immagini a toni di grigio • Con un solo bit per pixel si possono codificare solo due colori (tipicamente bianco e nero) • Per codificare più informazioni, dobbiamo usare più bit Facoltà di Farmacia - Corso di Informatica 219 Codifica delle immagini a toni di grigio • Con un solo bit per pixel si possono codificare solo due colori (tipicamente bianco e nero) • Per codificare più informazioni, dobbiamo usare più bit Ad es., tonalità di grigio: grigio per ogni quadratino si stabilisce il livello medio di grigio si codifica ogni livello di grigio (se uso 4 bit 16 livelli di grigio, se uso 8 bit 256 livelli di grigio, … se uso k bit 2k tinte diverse) Facoltà di Farmacia - Corso di Informatica 220 Ad esempio Il numero di bit per pixel e' importante come possiamo vedere nella prossima slide Ma anche il numero di pixels e' rilevante! In definitiva: Codifica delle immagini a colori Immagini a colori: • si individua una serie di sfumature di colore differenti • ognuna è codificata con un’opportuna rappresentazione binaria Facoltà di Farmacia - Corso di Informatica 226 Codifica delle immagini a colori Immagini a colori: • si individua una serie di sfumature di colore differenti • ognuna è codificata con un’opportuna rappresentazione binaria Due modi di codificare le immagini a colori: • true color • palette Facoltà di Farmacia - Corso di Informatica 227 True color True color • Colori come somma di tre colori primari: rosso, verde e blu (Red, Green, Blue: Blue RGB) • Monitor e televisori funzionano così 256 livelli ( 8 bit) per ogni canale (colore primario) 3 byte per ogni pixel 23*8 colori = 224 colori = 16.777.216 colori Colore nero bianco rosso giallo R 0 255 255 255 G 0 255 0 255 B 0 255 0 0 grigio 127 127 127 Facoltà di Farmacia - Corso di Informatica “Demo” 229 Riassumendo quanto visto fino ad adesso: Palette Tavolozza dei colori (palette): palette • in un’immagine indica quali colori possono essere assegnati ad un pixel • dà la corrispondenza tra un numero associato a un pixel e il colore reale Ogni immagine ha una propria tavolozza, a meno che sia un’immagine true color Facoltà di Farmacia - Corso di Informatica 231 Pixel e palette Partiamo da un’immagine a 256 colori, cioè 8 bit/pixel Facoltà di Farmacia - Corso di Informatica 232 Pixel e palette Partiamo da un’immagine a 256 colori, cioè 8 bit/pixel Facoltà di Farmacia - Corso di Informatica 233 Pixel e palette Facoltà di Farmacia - Corso di Informatica 234 Pixel e palette Codifica dei pixel 32 32 32 21 32 21 21 17 21 21 17 21 21 21 17 21 21 17 32 21 21 33 33 33 Facoltà di Farmacia - Corso di Informatica 235 Pixel e palette Codifica dei pixel 32 32 32 21 32 21 21 17 21 21 17 21 21 21 17 21 21 17 32 21 21 33 33 33 Facoltà di Farmacia - Corso di Informatica 236 Pixel e palette Tavolozza Indice R G B 53 23 56 57 ... 17 112 … 21 118 … Codifica dei pixel 32 146 64 33 33 149 66 54 32 32 32 21 32 21 21 17 21 21 17 21 21 21 17 21 21 17 32 21 21 33 33 33 Facoltà di Farmacia - Corso di Informatica … 237 Pixel e palette Tavolozza Indice R G B 53 23 56 57 ... 17 112 … 21 118 … Codifica dei pixel 32 146 64 33 33 149 66 54 32 32 32 21 32 21 21 17 21 21 17 21 21 21 17 21 21 17 32 21 21 33 33 33 Facoltà di Farmacia - Corso di Informatica … 238 In definitiva Occupazione delle immagini a colori (N.B.!!!) • Es.: immagine 150 x 200 pixel a 16 colori Facoltà di Farmacia - Corso di Informatica 240 Occupazione delle immagini a colori (N.B.!!!) • Es.: immagine 150 x 200 pixel a 16 colori Occorrono 4 bit per pixel (perché 24=16), Facoltà di Farmacia - Corso di Informatica 241 Occupazione delle immagini a colori (N.B.!!!) • Es.: immagine 150 x 200 pixel a 16 colori Occorrono 4 bit per pixel (perché 24=16), quindi occupa 150 * 200 * 4 bit = 120000 bit = 15000 byte (oltre alla palette) Facoltà di Farmacia - Corso di Informatica 242 Occupazione delle immagini a colori (N.B.!!!) • Es.: immagine 150 x 200 pixel a 16 colori Occorrono 4 bit per pixel (perché 24=16), quindi occupa 150 * 200 * 4 bit = 120000 bit = 15000 byte (oltre alla palette) • Es.: immagine 150 x 200 pixel true color Facoltà di Farmacia - Corso di Informatica 243 Occupazione delle immagini a colori (N.B.!!!) • Es.: immagine 150 x 200 pixel a 16 colori Occorrono 4 bit per pixel (perché 24=16), quindi occupa 150 * 200 * 4 bit = 120000 bit = 15000 byte (oltre alla palette) • Es.: immagine 150 x 200 pixel true color Occorrono 3 byte (24 bit) per pixel, Facoltà di Farmacia - Corso di Informatica 244 Occupazione delle immagini a colori (N.B.!!!) • Es.: immagine 150 x 200 pixel a 16 colori Occorrono 4 bit per pixel (perché 24=16), quindi occupa 150 * 200 * 4 bit = 120000 bit = 15000 byte (oltre alla palette) • Es.: immagine 150 x 200 pixel true color Occorrono 3 byte (24 bit) per pixel, quindi occupa 150 * 200 * 3 byte = 90000 byte Facoltà di Farmacia - Corso di Informatica 245 Codifica delle immagini a colori • Esistono tecniche di compressione delle immagini che consentono di ridurre la dimensione dello spazio occupato • Per esempio, una tecnica consiste nel codificare aree dello stesso colore in modo abbreviato 6* • Formati compressi più diffusi sono gif e jpeg • Altri formati di codifica sono tiff, bmp, pict, png • In generale si può passare da un formato all’altro Facoltà di Farmacia - Corso di Informatica 246 Codifica delle immagini in movimento • Codifica di sequenze di immagini (dette fotogrammi o frame) • Visto lo spazio elevato richiesto, occorrono tecniche di memorizzazione efficienti: per esempio, sono memorizzate solo le differenze tra un fotogramma e l’altro • Esistono vari formati (compresi i suoni): mpeg, avi (microsoft), quicktime (apple) • È possibile ritoccare i singoli fotogrammi Facoltà di Farmacia - Corso di Informatica 247 Codifica dei suoni • Il suono è uno dei mezzi principali di comunicazione • Anche i suoni possono essere codificati in digitale • Un suono è un’onda di pressione che si ha in presenza di un mezzo (l’aria, l’acqua) • Quando un suono viene rilevato dall’orecchio o da un microfono, viene trasformato in uno stimolo – o segnale – elettrico • Durata, Durata intensità e variazione nel tempo della pressione dell'aria sono le quantità fisiche che rendono un suono diverso da ogni altro Facoltà di Farmacia - Corso di Informatica 250 Codifica dei suoni • Sull'asse delle ascisse (x) viene rappresentato il tempo Sull'asse delle ordinate (y) viene rappresentata l' ampiezza (o intensita') corrispondente al suono stesso • Si rappresenta quindi l’intensità del suono in funzione del tempo ampiezza tempo • Tempo e intensità sono quantità analogiche Facoltà di Farmacia - Corso di Informatica 251 Codifica dei suoni • Problema. Passare da rappresentazione analogica a rappresentazione digitale ampiezza tempo Facoltà di Farmacia - Corso di Informatica 252 Codifica dei suoni • Problema. Passare da rappresentazione analogica a rappresentazione digitale • Idea. Si effettuano dei campionamenti sull’onda (cioè si misura il valore dell’onda a intervalli costanti di tempo) ampiezza ampiezza tempo tempo Facoltà di Farmacia - Corso di Informatica 253 Codifica dei suoni • Problema. Passare da rappresentazione analogica a rappresentazione digitale • Idea. Si effettuano dei campionamenti sull’onda (cioè si misura il valore dell’onda a intervalli costanti di tempo) e si codificano in forma digitale le informazioni (numeriche) estratte da tali campionamenti ampiezza ampiezza ampiezza tempo tempo Facoltà di Farmacia - Corso di Informatica tempo 254 Codifica dei suoni • Analogamente alle immagini, maggiore è la frequenza dei campionamenti, migliore sarà la precisione con cui il segnale viene memorizzato e la fedeltà all’originale ampiezza ampiezza tempo Facoltà di Farmacia - Corso di Informatica tempo 255 Codifica dei suoni • Analogamente alle immagini, maggiore è la frequenza dei campionamenti, migliore sarà la precisione con cui il segnale viene memorizzato e la fedeltà all’originale • Qual è il campionamento più fedele? ampiezza tempo Facoltà di Farmacia - Corso di Informatica tempo 256 Codifica dei suoni • Analogamente alle immagini, maggiore è la frequenza dei campionamenti, migliore sarà la precisione con cui il segnale viene memorizzato e la fedeltà all’originale • Qual è il campionamento più fedele? ampiezza tempo Campionamento meno fedele tempo Campionamento più fedele Facoltà di Farmacia - Corso di Informatica 257 Codifica dei suoni • Discretizzando esclusivamente sul tempo, abbiamo ancora campioni analogici (l’ampiezza è un valore analogico) • Occorre discretizzare anche l’ampiezza di ogni campione, per poterla esprimere con un numero binario ampiezza livelli di quantizzazione tempo Facoltà di Farmacia - Corso di Informatica 258 Codifica dei suoni • A ogni livello viene assegnata una sequenza binaria (diversa per ognuno). • Nell’esempio, si noti che i livelli sono etichettati con i numeri in complemento a 2, e non tutte le combinazioni di 4 bit sono visualizzate (e usate). ampiezza 0101 0100 livelli di quantizzazione 0011 0010 0001 0000 1111 tempo 1110 1101 1100 1011 Facoltà di Farmacia - Corso di Informatica 259 Codifica dei suoni • Ogni campione viene approssimato al livello più vicino, al valore indicato con il cerchio. Ogni campione sarà quindi espresso dal numero binario corrispondente al livello più prossimo. ampiezza 0101 0100 livelli di quantizzazione 0011 0010 0001 0000 1111 tempo 1110 1101 1100 1011 Facoltà di Farmacia - Corso di Informatica 260 Codifica dei suoni • Il segnale rappresentato con la sequenza 0001 0011 0100 0010 0010 0011 0010 0000 1101 1101 1101 0001 0010 0010 sarà quindi ricostruito con il seguente segnale: ampiezza 0101 0100 livelli di quantizzazione 0011 0010 0001 0000 1111 tempo 1110 1101 1100 1011 Facoltà di Farmacia - Corso di Informatica 261 Codifica dei suoni • La sequenza dei valori numerici ottenuta dai campioni è quindi digitalizzata. Si ha una discretizzazione in tempo e una sul valore • CD musicali: 44100 campionamenti al secondo, 16 bit per campione (-32768, 32767) • Diversi formati: mov, wav, mpeg (mp3), avi, midi • Formato midi codifica le note e gli strumenti che devono eseguirle: solo musica, non voce • Formato mp3 molto diffuso e molto efficiente Facoltà di Farmacia - Corso di Informatica 262 Ed infine, esercizi! Quanti byte occupa un suono della durata di 5 secondi campionato a 30 Hz (30 campioni per secondo), in cui ogni campione occupa 6 byte? Un secondo di suono campionato a 512 Hz occupa 1 KB. Quanti valori distinti possono avere i campioni? Una fiacca battuta finale Ci sono 10 tipi di persone: quelle che capiscono la notazione binaria e quelle che non la capiscono 01000110011010010110111001100101 Una fiacca battuta finale Ci sono 10 tipi di persone: quelle che capiscono la notazione binaria e quelle che non la capiscono 01000110011010010110111001100101 01000110 70=F 01101001 105=i 01101110 01100101 110=n 101=e Esercizi di riepilogo Facoltà di Farmacia - Corso di Informatica 267 Esercizi 1. Dati 6 bit, quante informazioni distinte si possono rappresentare? 2. Quante informazioni distinte si possono rappresentare con un byte? 3. Quanti bit si devono utilizzare per rappresentare 20 informazioni distinte? 4. Quanti byte occupa la parola “letterature” scritta in ASCII esteso? 5. Quanti byte occupa la frase “l’inglese, il francese” scritta in ASCII esteso? 6. Quanti byte occupa la parola “cinese” rappresentata in UNICODE? Facoltà di Farmacia - Corso di Informatica 269 Risposte 1. Dati 6 bit, quante informazioni distinte si possono rappresentare? 26=64 informazioni distinte 2. Quante informazioni distinte si possono rappresentare con un byte? 1 byte = 8 bit, 28=256 informazioni distinte 3. Quanti bit si devono utilizzare per rappresentare 20 informazioni distinte? Almeno 5 bit, perché 25=32 ≥20 (4 bit non sono sufficienti, perché 24=16 < 20) 4. Quanti byte occupa la parola “letterature” scritta in ASCII esteso? 11 (in ASCII esteso, un carattere corrisponde a un byte) 5. Quanti byte occupa la frase “l’inglese, il francese” scritta in ASCII esteso? 22 6. Quanti byte occupa la parola “cinese” rappresentata in UNICODE? 12 secondo il libro; da 6 a 24 secondo quanto detto a lezione Facoltà di Farmacia - Corso di Informatica 270 Esercizi 7. Le parole “Shakespeare” e “shakespeare” hanno la stessa rappresentazione in ASCII? 8. Le parole città e citta’ hanno la stessa rappresentazione in ASCII? 9. Quanti byte occupa un suono della durata di 5 secondi campionato a 30 Hz (30 campioni per secondo), in cui ogni campione occupa 6 byte? 10.Un secondo di suono campionato a 512 Hz occupa 1 KB. Quanti valori distinti possono avere i campioni? 11.Un'immagine a 256 colori è formata da 400x400 pixel. Quanto spazio occupa? Facoltà di Farmacia - Corso di Informatica 271 Risposte 7. Le parole “Shakespeare” e “shakespeare” hanno la stessa rappresentazione in ASCII? No 8. Le parole città e citta’ hanno la stessa rappresentazione in ASCII? No 9. Quanti byte occupa un suono della durata di 5 secondi campionato a 30 Hz (30 campioni per secondo), in cui ogni campione occupa 6 byte? 5 * 30 * 6 = 900 byte 10. Un secondo di suono campionato a 512 Hz occupa 1 KB. Quanti valori distinti possono avere i campioni? 1 KB = 1024 byte; numero di campioni = 1 * 512 = 512; ogni campione contiene 1024/512 = 2 byte; 2 byte = 16 bit; 216 valori distinti. 11. Un'immagine a 256 colori è formata da 400x400 pixel. Quanto spazio occupa? Ogni pixel richiede un byte (=8 bit, perché 28=256, sufficiente per rappresentare 256 colori); l'immagine ha 400 * 400 = 160 000 pixel; l'immagine occupa 160 000 byte (= 1 280 000 bit) Facoltà di Farmacia - Corso di Informatica 272 Esercizi 12.Hai ricevuto un messaggio di posta elettronica da un amico. Il messaggio contiene: un testo di 300 caratteri scritto in ASCII, un'immagine di 120x150 pixel con 1024 colori. Quanti byte occupa il messaggio? 13.Un'immagine di 300x400 pixel occupa 15 000 byte. L'immagine è a colori oppure in bianco e nero? 14.Quanto spazio occupa un'immagine animata di 100x100 pixel a 128 colori, formata da 6 frame? Facoltà di Farmacia - Corso di Informatica 273 Risposte 12.Hai ricevuto un messaggio di posta elettronica da un amico. Il messaggio contiene: un testo di 300 caratteri scritto in ASCII, un'immagine di 120x150 pixel con 1024 colori. Quanti byte occupa il messaggio? Testo: 300 byte. Immagine: ogni pixel richiede 10 bit (perché 210=1024); l'immagine ha 120 * 150 = 18 000 pixel; l'immagine occupa 10 * 18000 = 180 000 bit = 22 500 byte. Testo + immagine: 300 + 22 500 = 22 800 byte 13.Un'immagine di 300x400 pixel occupa 15 000 byte. L'immagine è a colori oppure in bianco e nero? L'immagine ha 300 * 400 = 120 000 pixel e occupa 15 000 * 8 = 120 000 bit. Quindi ad ogni pixel corrisponde un bit, e l'immagine è in bianco e nero 14.Quanto spazio occupa un'immagine animata di 100x100 pixel a 128 colori, formata da 6 frame? Ogni frame ha 100 * 100 = 10 000 pixel; ogni pixel richiede 7 bit (perché 27=128); ogni frame occupa 10 000 * 7 = 70 000 bit; l'immagine animata occupa 70 000 * 6 = 420 000 bit (= 52 500 byte) Facoltà di Farmacia - Corso di Informatica 274 Esercizi 15.Codificate i seguenti numeri (in codifica binaria non in complemento a due) nella corrispondente rappresentazione decimale: – 1012 – 10112 – 11012 – 100000012 – 110011002 – 11111111 16. Codificate i seguenti numeri nella corrispondente rappresentazione binaria: – 810 – 710 – 6010 – 28110 Verificate i risultati convertendoli nella rappresentazione decimale. • 17. Dato il numero 86210 qual è il numero minimo di bit che si devono usare per la sua rappresentazione binaria? Facoltà di Farmacia - Corso di Informatica 275 Risposte 15.Codificate i seguenti numeri (in codifica binaria non in complemento a due) nella corrispondente rappresentazione decimale: – 1012 = 510 – 10112 = 1110 – 11012 = 1310 – 100000012 = 12910 – 110011002 = 20410 – 111111112 = 25510 16. Codificate i seguenti numeri nella corrispondente rappresentazione binaria: – 810 = 10002 – 710 = 1112 – 6010 = 1111002 – 28110 = 1000110012 Verificate i risultati convertendoli nella rappresentazione decimale. • 17.Dato il numero 86210 qual è il numero minimo di bit che si devono usare per la sua rappresentazione binaria? Numero minimo di bit: 10 (86210 = 11010111102) Facoltà di Farmacia - Corso di Informatica 276 Esercizi 18.Fate l'addizione dei numeri 11002 e 11012 nella maniera seguente: codificate i numeri 11002 e 11012 nella rappresentazione decimale, fate l'addizione dei numeri in base 10 ottenuti, e poi codificate la somma ottenuta nella rappresentazione binaria. 19.Ripetete la domanda precedente usando i numeri 10012 e 11012. 20.Codificate i seguenti numeri rappresentati in complemento a due nella corrispondente rappresentazione decimale: 19.1111002 20.0001002 21.1000112 22.1010102 23.0101012 24.1111112 Facoltà di Farmacia - Corso di Informatica 277 Risposte 18.Fate l'addizione dei numeri 11002 e 11012 nella maniera seguente: codificate i numeri 11002 e 11012 nella rappresentazione decimale, fate l'addizione dei numeri in base 10 ottenuti, e poi codificate la somma ottenuta nella rappresentazione binaria. 11002 + 11012 = 110012 (11002 = 1210 , 11012 = 1310 , 2510 = 110012) 19.Ripetete la domanda precedente usando i numeri 10012 e 11012. 10012 + 11012 = 101102 (10012 = 910 , 11012 = 1310 , 2210 = 101102) 20.Codificate i seguenti numeri rappresentati in complemento a due nella corrispondente rappresentazione decimale: 1.1111002 = -410 2.0001002 = 410 3.1000112 = -2910 4.1010102 = -2210 5.0101012 = 2110 6.1111112 = -110 Facoltà di Farmacia - Corso di Informatica 278