La codifica dell informazione Fondamenti di Informatica A Ingegneria Gestionale SECONDA PARTE Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Numeri frazionari Sono numeri reali compresi fra 0 e 1 N = 0.a -1 a -2 a -n Anche qui il peso delle cifre a i dipende dalla base prescelta N b = a -1 xb -1 + a -2 xb -2 + + a -n xb -n Esempio con b = 10: 0.587 dieci = (5x10-1 + 8x10-2 + 7x10-3 ) Esempio con b = 2: 0.1011 2 = (1x2-1 + 0x2-2 + 1x2-3 + 1x2-4 ) dieci = (0.50 + + 0.125 + 0.0625) dieci = 0.6875 dieci Docente: Gerevini Fondamenti di Informatica A Università di Brescia 2 Conversione da decimale a binario di un numero frazionario Basta fare una sequenza di moltiplicazioni per 2 e prendere la parte intera di ciascun prodotto dalla cifra più significativa a quella meno significativa Esempio: 0.587 dieci binario? 0.587 x 2 = 1.174: p.f. 0.174, parte intera 1 (cifra più significativa) 0.174 x 2 = 0.348: p.f. 0.348, parte intera 0 0.348 x 2 = 0.696: p.f. 0.696, parte intera 0 0.696 x 2 = 1.392: p.f. 0.392, parte intera 1 0.392 x 2 = 0.784: p.f. 0.784, parte intera 0 0.784 x 2 = 1.568: p.f. 0.568, parte intera 1. Si ottiene 0.10010 due con 5 cifre binarie dopo la virgola, oppure 0.100101 due con 6 cifre binarie dopo la virgola, oppure In ogni caso c è un approssimazione Rappresentazione dei numeri reali Per rappresentare numeri come 1/3 = 0.33333333333. π = 3.141592653 2 = 1.4142135 servirebbe un numero di cifre illimitato Nel calcolatore è possibile usare solo successioni di bit di lunghezza finita Necessaria approssimazione Docente: Gerevini Fondamenti di Informatica A Università di Brescia 3 Fondamenti di Informatica A Università di Brescia 4
Rappresentazione dei numeri reali Massa dell elettrone: 9 x 10-28 grammi 0000000000000000000000000000000000.0000000000000000000000000009 Massa del sole: 2 x 10 33 grammi 2000000000000000000000000000000000.0000000000000000000000000000 Potrei rappresentare tutti i numeri con 34 cifre a sinistra della virgola e 28 cifre a destra Si vuole un sistema di rappresentazione in cui l intervallo dei numeri esprimibili sia indipendente dal numero di cifre significative notazione scientifica Notazione scientifica Un numero in base 10 viene rappresentato come ± m x 10 e base segno mantissa esponente Esempio: 159 300 000 = +1.593 x 10 8 dove m=1.593 ed e=8 Esempio: -0.00001593 = -1.593 x 10-5 dove m=1.593 ed e=-5 Fondamenti di Informatica A Università di Brescia 5 Fondamenti di Informatica A Università di Brescia 6 Notazione scientifica per numeri binari Il numero 101010000 due può essere rappresentato come Nel calcolatore: rappresentazione in virgola fissa Esempio (in base 2): numeri di 3 byte Parte intera Parte decimale 1.0101 x 10 1000 e = 8 dieci 2 byte 1 byte mantissa base = 2 dieci Basta memorizzare segno, mantissa ed esponente Il numero più piccolo rappresentabile è: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 (2-8 ) Fondamenti di Informatica A Università di Brescia 7 Fondamenti di Informatica A Università di Brescia 8
Nel calcolatore: rappresentazione in virgola mobile Virgola mobile o Floating point Con mantissa ed esponente: N +/-(m,e) la mantissa m è la parte frazionaria compresa fra 0 e 1 (mantissa normalizzata) l esponente e è un intero >= 0 Numero di bit: 1 per il segno, k per mantissa e h per esponente cambiando k e h si cambia intervallo e precisione lostandard IEEE 754 stabilisce lunghezza di mantissa ed esponente L insieme dei numeri in virgola mobile non coincide con R L insieme dei numeri reali è denso e illimitato L insieme dei numeri in virgola mobile non è denso ed esistono un numero reale massimo ed uno minimo esprimibili L aritmetica reale del calcolatore è diversa da quella classica Fondamenti di Informatica A Università di Brescia 9 Fondamenti di Informatica A Università di Brescia 10 Esempio: forma normalizzata in base 10 Supponiamo 3 cifre decimali in base 10 per la mantissa e 2 cifre in base 10 per l esponente Numeri negativi esprimibili 1 overflow 2-0.999 x 10 99 numeri non esprimibili ±0.XXX x 10 ±YY -0.100 x 10-99 underflow 3 Numeri positivi esprimibili 0 +0.999 x 10 99 4 5 +0.100 x 10-99 6 7 overflow numeri non esprimibili I problemi che nascono dalla natura digitale del calcolatore I numeri nelle regioni 1, 3, 5, e 7 non possono essere rappresentati I due intervalli di numeri positivi e negativi esprimibili (2 e 6) non formano insiemi continui: i numeri non sono cioè uniformemente distribuiti (più radi per valori elevati dell esponente e più fitti per valori piccoli dell esponente) Nell esempio: la mantissa varia da m = 0.100 a 0.999 (900 numeri) l esponente varia da e = -99 a +99 (199 ordini di grandezza) in totale: 900x199 numeri positivi, 900x199 numeri negativi, e lo zero 358201 numeri Fondamenti di Informatica A Università di Brescia 11 Fondamenti di Informatica A Università di Brescia 12
Operazioni sui numeri reali Addizione e sottrazione: si trasformano (con eventuale perdita di precisione) gli addendi in una rappresentazione con uguale esponente (il maggiore) si sommano (sottraggono) le mantisse si normalizza se necessario Moltiplicazione: si sommano gli esponenti si moltiplicano le mantisse si normalizza se necessario Divisione: si sottraggono gli esponenti si dividono le mantisse si normalizza se necessario Esempio (in base 10) Esempio (8 cifre per la mantissa) 0.43561234 x 10-4 + 0.51371313 x 10-2 porto l'esponente del primo operando a -2: 0.00435612 x 10-2 0.00435612 + [ x10-2 ] ho perso delle cifre 0.51371313 = [ x10-2 ] 0.51806925 [x10-2 ] [NB: già normalizzato!] Fondamenti di Informatica A Università di Brescia 13 Fondamenti di Informatica A Università di Brescia 14 Problemi con le operazioni Addizioni e sottrazioni possono dare luogo a errori Esempio: sottrazione fra due numeri quasi uguali può dar luogo al fenomeno della cancellazione (risultato = 0) Divisione per numeri molto piccoli il risultato può cadere nell intervallo di overflow (regioni 1 e 7) Esercizi Convertire in decimale i seguenti numeri frazionari binari: 0.111 due, 0.0101 due, 0.00011 due Convertire in binario (su 6 bit) i seguenti numeri frazionari decimali: 0.226 dieci, 0.349 dieci, 0.712 dieci Esprimere i numeri 13.25 dieci e 189.8123 in forma normalizzata in base 10 e in base 2 Fondamenti di Informatica A Università di Brescia 15 Fondamenti di Informatica A Università di Brescia 16
Codifica binaria dei caratteri Quanti oggetti? 10 cifre 26 lettere minuscole + 26 lettere maiuscole = 52 ~30 segni di interpunzione ~30 caratteri di controllo (LF, CR, EOF, ) ~120 oggetti k = log 2 120 = 7 Il codice ASCII utilizza 7 bit e quindi può rappresentare al massimo n = 2 7 = 128 caratteri Codice ASCII esteso: utilizza 8 bit e quindi codifica 256 caratteri Codice UNICODE: utilizza 16 bit e quindi codifica 65536 caratteri (anche quelli delle lingue orientali non tutti! Sono circa 200 000! e aumentano!) Bit, Byte, KiloByte, MegaByte,... Bit = 0 oppure 1 Byte = 8 bit = 2 3 KiloByte (KB) = 2 10 byte = 1.024 byte MegaByte (MB) = 2 20 byte = 1.048.576 byte GigaByte (GB) = 2 30 byte = 1.073.741.824 byte TeraByte (TB) = 2 40 byte = PetaByte (PB) = 2 50 byte = ExaByte (EB) = 2 60 byte = Fondamenti di Informatica A Università di Brescia 17 Fondamenti di Informatica A Università di Brescia 18 Rappresentazione di immagini Digitalizzazione: passaggio da un immagine a sequenza di bit Immagine bitmap: matrice di pixel di vari colori Dimensioni matrice: 640 x 480, 1028 x 768, etc. Un pixel (unità elementare) è codificato da un numero di bit che rappresentano una certa grandezza: es. luminosità, colore, etc Problemi con immagini bitmap: ogni ingrandimento fa perdere qualità (l immagine si sgrana ) occupano molta memoria Per ovviare ai problemi di spazio: formato compresso Numero di bit e capacità di rappresentazione 1 bit (per pixel) 2 informazioni diverse (b/n) 4 bit (per pixel) 16 colori o livelli di grigio 8 bit (per pixel) 256 colori o livelli di grigio 16 bit (per pixel) 64K colori (2 16 = 2 10 x 2 6 ) 24 bit (per pixel) 16M = 2 24 colori (ogni pixel può assumere più di 16 milioni di colori) Fondamenti di Informatica A Università di Brescia 19 Fondamenti di Informatica A Università di Brescia 20
I formati di file bitmap BMP: formato standard non compresso per MS Windows, 24 bit per pixel,.bmp GIF (Graphic Interchange Format): formato compresso, 8 bit per pixel (256 colori),.gif JPEG (Joint Picture Experts Group): 16 milioni di colori, formato compresso (più del gif),.jpg JPEG 2000: formato ancor più compresso,.j2k o.jp2 TIFF (Tagged Image File Format): alta qualità, 16 milioni di colori, dimensioni file molto grandi,.tif, molto adottato da scanner e macchine fotografiche Grafica vettoriale Le immagini sono disegnate tramite un insieme di oggetti grafici (linee, rettangoli, ellissi, archi e curve primitive) Memorizzazione come coordinate numeriche o formule matematiche che specificano forma e posizione Programmi di tipo draw (programmi di grafica vettoriale): es. Corel Draw, programmi di CAD, programmi di grafica tridimensionale Vantaggi: Controllo accurato di linee e colori Ingrandimento e riduzione senza perdita Facilità di modifica di combinazione e sfumature colori Possibilità inserimento testo attorno agli oggetti Fondamenti di Informatica A Università di Brescia 21 Fondamenti di Informatica A Università di Brescia 22 Rappresentazioni dei suoni Segnali audio: onde analogiche campionamento + quantizzazione valori digitali (campionamento = discretizzazione nel tempo) (quantizzazione = discretizzazione nell ampiezza) Nei CD sono memorizzati segnali digitali Scheda audio e diffusori ricevono i valori digitali e ricostruiscono le onde analogiche Memorizzazione: Nbit = F(durata, f c, bit/campione) dove - f c = 8kHz per la voce, 44.1 khz per la musica su CDAudio - bit/campione = 8 per la voce, 16 CDAudio Alcuni formati audio WAVE:.wav, occupano molto spazio (~1MB per minuto) MIDI (Musical Instrument Digital Interface):.mid, i file memorizzano non suoni ma comandi (es. le note musicali di un particolare strumento) che vengono inviati ai dispositivi MIDI per riprodurre i suoni, occupano molto meno spazio dei.wav. Sintetizzatore musicale + computer (con sw e porta midi) permettono di suonare un brano su tastiera che viene automaticamente trascritto in notazione musicale in un file midi che può poi essere anche modificato MP3 (MPEG-1 Layer 3): grande diffusione su Internet. MPEG nasce da un gruppo di lavoro di standardizzazione Fondamenti di Informatica A Università di Brescia 23 Fondamenti di Informatica A Università di Brescia 24
I formati dei documenti Compressione di file Documenti in formato PDF (Portable Document Format, formato di documento portabile) Ogni documento PDF può essere visualizzato e stampato da qualsiasi tipo di computer dotato dell applicazione Acrobat Reader (della Adobe, gratuita) Come creare un file PDF? Stampare in un file PDF su disco invece che su stampante Documenti in formato PS (PostScript) L applicazione GSview (Ghostview) legge il formato postscript (disponibile gratuitamente) Con un apposito programma di utilità si può creare un archivio in cui i file vengono memorizzati in formato compresso Formato ZIP (.zip): si può ottenere con i programmi WinZip e PKZip Compressione per: ottimizzare lo spazio semplificare e velocizzare trasferimento di file in rete Fondamenti di Informatica A Università di Brescia 25 Fondamenti di Informatica A Università di Brescia 26