Codifica binaria dell informazione La codifica binaria L alfabeto piu semplice e quello costituito da soli due simboli. Rappresentazioni posizionali Codifica numeri interi Codifica numeri in virgola mobile Codifica di immagini Codifica di suoni e video (cenni) Un sistema automatico basato su un alfabeto binario e : Facilmente implementabile su un supporto fisico Sostanze magnetiche con due opposte polarizzazioni Passaggio o meno di corrente Passaggio o meno di luce.... Piu economico Piu affidabile F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 2 Es. Codice binario di Morse:. - Sistema di numerazione decimale A B C D E F G H I. - -... -. -. -..... -. --....... J K L M N O P Q R. --- -. -. -.. -- -. ---. --. --. -. -. S T U V W X Y Z... -.. -... -. - - -.. - -. -- --.. Codifica solo le lettere maiuscole Il numero di simboli in successione non e fisso per ogni lettera F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 3. E posizionale (unita, decine, centinaia) 2. E costituito da cifre (base = ) 54.3 = 5 2 + + 4 + 3 - + -2 Cifra piu significativa valore intrinseco della cifra peso Cifra meno significativa F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 4
Notazione posizionale La notazione posizionale consente di scrivere un numero N di una certa base generica b come una sequenza di cifre. 54.3 = 5 2 + + 4 + 3 - + -2 Sistema binario Sistemi posizionali Base Cifre 2 Generalizzando, data una base b ed un insieme di b cifre: ottale 8 2 3 4 5 6 7 a n- a n-2 a n-3...a 2 a a. a - a -2... a -m-2 a m-2 a m- a -m decimale 2 3 4 5 6 7 8 9 Valore decimale del numero N n V(N) = a b i i i= m a b i esadecimale 6 (28) =() 2 =(D) 6 =(32) 8 base 2 3 4 5 6 7 8 9 A B C D E F F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 5 F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 6 Sistema non posizionale Il sistema di numerazione romano non e posizionale: il valore associato a ciascun simbolo non dipende dalla sua posizione. Es: nei due numeri XII e XIX la seconda cifra, pur avendo la stessa posizione, assume due pesi diversi: XII = + + XIX = + - F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 7 Limiti della rappresentazione posizionale (I) Data un sistema di numerazione di base b qual e il massimo numero intero positivo rappresentabile in una sequenza di n cifre? Es. in 4 cifre il sistema decimale puo rappresentare interi positivi da a 9999, ovvero 4 valori diversi, ovvero b 4 valori. Formalmente, il numero massimo N max rappresentabile con n cifre nella base b e : N n = max i= (b ) b = b F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 8 i n
Limiti della rappresentazione posizionale (II) Quante cifre sono invece necessarie per rappresentare un dato numero in una base? Basta invertire la relazione precedente: Es. in una sequenza di 6 cifre il sistema binario puo rappresentare 2 6 = 65536 interi positivi che vanno da a 65535; il numero minimo di cifre per rappresentare il numero è ceil(log 2 ()) = F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 9 Ceiling: minimo intero superiore nmin = logb( N + ) Il computer e l informazione Il sistema posizionale binario permette la codifica dell informazione numerica attraverso l uso di solo due cifre. Con opportune convenzioni si possono rappresentare anche i numeri relativi interi e frazionari, i caratteri, le immagini ed i suoni. A causa della maggiore facilita implementativa ed affidabilita su un supporto fisico, i calcolatori digitali trattano solo informazione codificata in forma binaria. L unita elementare d informazione manipolata e memorizzata da un computer e detta bit (binary digit), e può assumere i valori e. F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 Alcune convenzioni byte sequenza di 8 bit (Es. ) word da 6 a 64 bit a seconda dell architettura; convenzionalmente 6bit longword convenzionalmente 32 bit Multiplo Kilo Mega Giga Tera Peta Exa Sigla k M G T P E Valore 2 = 24 2 2 = 24 2 2 3 = 24 3 2 4 = 24 4 2 5 = 24 5 2 6 = 24 6 Approssimazione 3 6 9 2 5 8 F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 Codifica dei numeri interi Nell aritmetica binaria vi sono 4 tecniche di organizzazione dei numeri interi con segno.. Modulo e segno; 2. Complemento alla base diminuita; 3. Complemento alla base; 4. Eccesso M (o bias); F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 2
Complemento alla base Dato un numero N b, il complemento alla base C(N b ) e dato da: Metodo del bias Metodo del bias: Si sottintende di sottrarre sempre un numero pari a 2 n /2=2 (n-) da ogni numero rappresentato. A 8 bit il numero da sottrarre (bias) è allora 28. C(N b ) = b n -N dove n e il numero di cifre usato per rappresentare N. +(8) (8+28) = (36) ( ) 2 Per b = 2, il complemento e noto come complemento a 2. -(8) (-8+28) = (2) ( ) 2 In pratica, il complemento a 2 si ottiene invertendo tutti i bit e aggiungendo. F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 3 Il metodo del bias preserva l ordinamento. Per effettuare somme e sottrazioni occorre ogni volta sottrarre o aggiungere il bias F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 4 Numeri in virgola mobile (I) La rappresentazione degli interi non esaurisce certo l insieme di numeri rappresentabili. Supponiamo inoltre di voler rappresentare un intero molto grande, come ad esempio duemila miliardi: N = 2 Avremmo bisogno di ben 4 bit per rappresentarlo come unsigned (o 42 come int). Numeri in virgola mobile (II) Notazione: N = 2. 2 La maggior parte dello spazio sarebbe sprecato per conservare informazione sugli zeri: in effetti si può usare la notazione scientifica e scrivere, in modo molto più compatto: N = 2. 2 Mantissa Base Esponente F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 5 F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 6
Lo standard IEEE 754 I primi calcolatori utilizzavano ciascuno un differente sistema di convenzioni per rappresentare i floating point. Nel 985 è stato definito uno standard che è oggi largamente accettato. N S E B = ( ). F 2 Bit di segno Mantissa frazionaria normalizzata Esponente con bias Float, double, long double L esempio precedente si riferisce a un numero di tipo float o singola precisione. Lo standard ANSI/IEEE754 definisce anche il numero di bit per ciascun campo per rappresentare numeri di tipo double (doppia precisione) e long double (quadrupla precisione). S ( bit) S ( bit) S ( bit) E ( bit) E (5 bit) E (8 bit) F (52 bit) F (2 bit) F (23 bit) Float Double Long double F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 7 F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 8 Overflow e underflow Nelle operazioni fra floating point, possono verificarsi due condizioni di errore : Overflow: in un qualsiasi passo l esponente calcolato è superiore al massimo rappresentabile; può verificarsi quando si maneggiano numeri dal valore assoluto molto elevato. Underflow: in un qualsiasi passo l esponente calcolato è inferiore al minimo rappresentabile; può verificarsi quando si maneggiano numeri molto vicini allo zero della macchina. F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 9 Propagazione degli errori I calcoli in virgola mobile vengono effettuati riportando i numeri allo stesso esponente, lavorando poi sulle mantisse e infine normalizzando il risultato. Tali procedure introducono un arrotondamento nei calcoli: la cifra meno significativa della mantissa sarà sempre affetta da un errore. Per minimizzare questo errore lo standard IEEE 754 prevede di memorizzare tutti i risultati intermedi di un operazione in virgola mobile con due cifre aggiuntive dette di cifra di guardia e cifra di arrotondamento. In questo modo i calcoli in virgola mobile garantiscono una precisione inferiore a metà dell unita sulla cifra meno significativa. F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 2
Un paradosso La proprietà associativa della somma garantisce che, in generale: x + ( y + z) = ( x + y) + z Eppure in singola precisione calcoliamo il lato destro e il sinistro dell uguaglianza per x = -.5 ; y =.5 ; z =. x + ( y + z) =.5 ( x + y ) + z = (.5 + (.5 +.) =.5 +.5 +.5 =. ) +. =. +. =. Codifica dei caratteri Mentre per codificare numeri si usano tecniche basate sul loro valore, per codificare dei caratteri c e bisogno di una relazione convenzionale, ovvero di una tabella che faccia corrispondere a una data sequenza di bit un dato carattere. Nel progettare tale tabella bisogna tener conto ovviamente anche di caratteri non direttamente stampabili, ma che rappresentino la formattazione del testo, come ad esempio il carriage return CR ( a capo ). F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 2 F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 22 Il codice ASCII Lo standard internazionalmente adottato per la codifica dei caratteri è il codice ASCII, acronimo di American Standard Code for Information Interchange. Le caratteristiche del codice ASCII sono: 7 bit ovvero 28 caratteri da a 27 32 caratteri speciali non stampabili Cifre del sistema decimale, maiuscole, minuscole,! #$& ()*+,-./@:;<=>? Etc. Le lettere e le cifre conservano l ordine alfabetico/numerico La distanza fra maiuscole e minuscole è fissata Il codice viene spesso esteso a 8 bit per comprendere set di caratteri specifici di una certa area geografica, come è,ç F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 23 Immagini (I) Non c è un quanto naturale di informazione elementare come la cifra per i numeri o la lettera per i testi. Si introduce allora un reticolo di punti detti pixel Ad ogni pixel viene poi associato un certo numero di bit, che indica l intensità luminosa di ciascun colore primario, ovvero della combinazione RGB RedGreenBlue. Una tipica codifica utilizza 8 bit per colore (=256 livelli di intensità) ovvero 24 bit/pixel. In questo modo si possono rappresentare 2 24 ~ 6 milioni di diverse tonalità di colore. Il numero di bit/pixel impiegati viene chiamato profondità di colore dell immagine. F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 24
Immagini (II) 3 zeri 2 uno 4 zeri 2 volte (2 uno 2 zeri) uno 4 zeri 2 zeri F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 25 Immagini (III) La dimensione di un immagine con profondità di colore a 24 bit e risoluzione tipica di un monitor di PC (24x768 pixels) è già di 2.25 MB. Per poter stampare immagini di qualità fotografica occorre una risoluzione decisamente superiore. COMPRESSIONE dei dati Vari tipi di file, con diversi livelli di compressione, ad es.: TIFF: Tagged Image File Format GIF: Graphics Image Format (solo per immagini semplici) JPEG: (Joint Photographers Expert Group) molto usato per immagini fotografiche BMP: basso livello di compressione, immagini ingombranti. F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 26 Immagini (IV).bmp 4 Kb.tiff 42 Kb.jpeg 425 Kb Un discorso a parte meritano le immagini vettoriali, usatissime nel campo della progettazione meccanica, architettonica, elettronica etc. L immagine, piuttosto che in punti, è scomposta in forme geometriche astratte come poligoni, cerchi etc. Per descrivere una circonferenza bastano ad es. posizione del centro e raggio. Vantaggi: indipendenza dalla risoluzione del dispositivo di visualizzazione/stampa dimensioni ridotte delle immagini Svantaggi: non applicabile in modo semplice a fotografie e immagini complesse Tipici formati vettoriali: PostScript, PDF (Portable Data Format) F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 27 F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 28
Suoni e filmati Immagine tridimensionale vista da diverse prospettive ottenuta con un programma di CAD Le tecniche di compressione dei dati, unite a studi di psicoacustica hanno permesso di realizzare rappresentazioni di filmati e di sequenze audio di dimensioni accettabili, dell ordine di qualche MB. Questo ha aperto la strada all utilizzo della multimedialità nell informatica. Tipici formati audio/video sono MP3, MPEG, AVI, RealAudio, RealVideo. F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 29 F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 3 Video compresso con tecnica intraframe F. Ambrosino/E. Vardaci Corso di Informatica A.A. 24-25 3