L informazione L informazione si può: – rappresentare – elaborare – gestire – trasmettere – reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica e digitale L informazione (ad es. il valore di grandezze fisiche come tempo, temperatura, massa, ecc.) può essere rappresentata in forma continua (analogica) o discreta (digitale). Digit (Inglese) = cifra Informazione analogica e digitale Lettura analogica: i valori variano con continuità fra un minimo e un massimo Lettura digitale: c è un numero finito di valori fra il minimo e il massimo CAMPIONAMENTO 4 QUANTIZZAZIONE 5 La codifica dell’ informazione • COME possiamo rappresentare un’informazione di tipo DIGITALE ? • Il modo di rappresentare le informazioni è detto codifica delle informazioni. • Come possiamo CODIFICARE un’informazione di tipo digitale ? La codifica dell informazione • Le parole che usiamo per parlare e scrivere, ad esempio, sono codificate attraverso le lettere dell alfabeto Se abbiamo un alfabeto con 20 lettere quante parole diverse possiamo formare utilizzando ad esempio due sole lettere? AA, AB, GH, SP, .... Ci sono in pratica 202 = 400 combinazioni diverse. La codifica dell informazione Con parole da tre lettere avremmo 203 = 8000 combinazioni diverse: AAB, DFR, GGH, ecc. Con un alfabeto con 6 lettere soltanto avremmo bisogno di parole da 5 per poter formare un numero simile di combinazioni: 65 = 7776 Diminuendo il numero di lettere aumenta la lunghezza delle parole che posso formare a parità di numero di combinazioni La codifica dell informazione Altri codici si possono costruire usando i numeri naturali (numeri interi: 1, 2, 3, ecc.) Se abbiamo un sistema numerico a dieci simboli, quante combinazioni diverse possiamo formare utilizzando ad esempio due sole cifre? 11, 12, 45, 54, .... Ci sono in pratica 102 = 100 combinazioni diverse (da 00 a 99). La codifica dell informazione Con il sistema numerico in base 10 e numeri da tre cifre avremmo 103 = 1000 combinazioni diverse (da 000 a 999). Con un sistema numerico in base 4 avremmo bisogno di numeri da cinque cifre per avere 45 = 1024 combinazioni diverse (da 00000 a 33333). La codifica dell informazione Il numero minimo di cifre per costruire un sistema di numerazione è due (sistema binario). Se abbiamo un sistema numerico a due simboli (0, 1), quante combinazioni diverse possiamo formare utilizzando ad esempio due sole cifre? Ci sono in pratica 22 = 4 combinazioni diverse: 00, 01, 10, 11 utilizzabili, ad esempio, per rappresentare i numeri interi da zero a tre. La codifica dell informazione Quindi: Con il sistema numerico in base 10 ci bastano numeri da tre cifre per avere 103 = 1000 combinazioni diverse (da 000 a 999). Con un sistema numerico in base 4 avremmo bisogno di numeri da cinque cifre per avere 45 = 1024 combinazioni diverse (da 00000 a 33333). Con il sistema binario avremmo bisogno di numeri da dieci cifre per avere 210 = 1024 combinazioni diverse (da 0000000000 a 1111111111). La codifica dell informazione Riassumendo…. Per rappresentare i numeri da 000 a 999 con una codifica di tipo binario dobbiamo necessariamente usare sequenze di 10 cifre (da 0000000000 a 1111111111. Il Sistema Numerico Binario I moderni calcolatori utilizzano il sistema numerico binario (1 e 0), messo a punto da George Boole, per poter rappresentare un informazione che può essere un numero o una lettera. Perchè i PC si basano su una codifica di tipo binario? Poiché lo stato di molti dispositivi è definibile senza errori utilizzando solo due alternative, è naturale pensare di adottare il sistema binario nell elaborazione automatica dell informazione: – La lampadina (accesa o spenta) – La porta di casa (aperta o chiusa) – Il motore della macchina (acceso o spento) Conversioni tra Sistemi Numerici I più comuni sono: • • • • Sistema decimale Sistema binario Sistema ottale Sistema esadecimale Sistema di numerazione posizionale Il sistema di numerazione decimale che usiamo normalmente è posizionale, cioè il valore di ogni cifra dipende dalla sua posizione nel numero. Per un numero scritto in notazione decimale (es: 23) abbiamo: 23 = due decine più tre unità, ossia: 23 = 3x100 +2x101 4132 = 2x100 + 3 x101 + 1x102 +4x103 1 = uno, 11 = undici; 9 = nove, 99 = novantanove. Il Sistema Numerico Binario • In modo analogo al sistema decimale, le cifre del sistema binario 0 e 1 assumono un valore posizionale nella scrittura del numero binario con riferimento alle potenze di 2, anziché alle potenze di 10. • Conversione binario-decimale: Si moltiplica ciascuna cifra binaria partendo da destra per la corrispondente potenza di 2 e si sommano i prodotti ottenuti. Esempi: 101 = 1x20 + 0x21 + 1x22= cinque 1110 = 0x20 + 1 x21 + 1x22 + 1x23 = qua5ordici Il Sistema Numerico Binario Conversione decimale binario Si divide il numero dato per 2 e si scrive il resto, che può essere 0 o 1; Il quoziente ottenuto viene a sua volta diviso per 2 ottenendo un nuovo resto. Si prosegue fino a quando si ottiene come quoziente il numero 0. • Per esempio , la trasformazione del numero decimale 35: • QuozienA ResA 35 17 1 8 1 4 0 2 0 1 0 0 1 3510 = 1000112 Il Sistema Ottale Il sistema ottale si chiama così perché utilizza 8 cifre nella rappresentazione dei numeri: 0,1,2,3,4,5,6,7. Le regole per la conversione di un numero ottale in decimale e da decimale ad ottale sono analoghe al sistema binario esempio: trasformazione del numero o5ale 325 in numero decimale: 80 ! 5 + 81 ! 2 + 8 2 ! 3 = 5 +16 +192 = 213 Viceversa trasformazione del numero decimale 1602 in numero o5ale QuozienA ResA 1602 200 2 25 0 3 1 0 3 160210 = 31028 Il Sistema Esadecimale Il sistema esadecimale utilizza 16 cifre: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Quindi la lettera A rappresenta il numero decimale 10 in esadecimale, B il numero 11, C il numero 12, D il numero 13, E il numero 14, F il numero 15. Il valore delle cifre dipende dalla posizione nella scrittura del numero secondo le potenze di 16 Esempio: trasformazione del numero esadecimale 3AF2 in numero decimale: 0 1 2 3 16 ! 2 +16 !15 +16 !10 +16 ! 3 = 15090 Trasformazione del numero decimale 16034 in numero esadecimale: QuozienA resA 16034 1002 2 2 62 10 A 3 14 E 0 3 3 1603410 = 3EA216 Nelle operazione di conversione dei numeri da un sistema all’altro, è conveniente ricordare le seguenA tabelle: Binario Ottale Binario Esadecimale 000 001 010 011 100 101 110 111 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 2 3 4 5 6 7 8 9 A B C D E F Regole di conversione binario/ottale/ esadecimale Da binario ad o5ale Si raggruppano le cifre del numero binario a gruppi di tre a par+re da destra, e si trasformano le cifre di ciascun gruppo nel corrispondente numero o5ale secondo la tabella precedente. Es.: il numero binario 1011110111 Si può scrivere come: 1 011 110 111 1 3 6 7 10111101112 = 13678 Da o5ale a binario Si fa corrispondere a ciascuna cifra o5ale che compone il numero un gruppo di tre bit secondo la tabella precedente. Es.: dato il numero o5ale 625 si può scrivere: 6 2 5 110 010 101 Quindi: 6258 = 1100101012 Da binario a esadecimale Si raggruppano le cifre del numero binario a gruppi di qua/ro a parAre da destra e si trasformano le cifre di ciascun gruppo nel corrispondente numero esadecimale secondo la tabella di conversione Es.: il numero binario 1011110111 Si può scrivere come 10 1111 0111 2 F 7 Quindi: 1011110111 2 = 2F7 16 Da esadecimale a binario Si fa corrispondere a ciascuna delle cifre esadecimale che compongono il numero un gruppo di qua/ro bit secondo la tabella di conversione. Es.: dato il numero esadecimale C3B C 3 B 1100 0011 1011 Quindi: C 3B16 = 1100001110112 L unità di misura del mondo digitale: il bit • Il bit (binary digit): unità minima dell informazione digitale, una singola cifra 0 o 1 • 1 bit: la quantità di informazione fornita dalla scelta tra due diverse alternative Le parole digitali Un insieme di bit forma una parola digitale: 110010110001… Come abbiamo visto, il numero di parole diverse che possiamo formare con n bit è 2n Le parole digitali Analogamente al nostro linguaggio, il significato di una parola digitale dipende dall ordine in cui si incontrano i caratteri: da e ad sono due parole diverse, come lo sono 10 e 01 Le parole digitali Abbiamo visto come costruire un sistema di numerazione posizionale in base due (sistema binario): 0112 = 310, 1012 = 510, ecc. Abbiamo anche capito che possiamo usare i due simboli binari per costruire un codice qualunque: 011 = H, 101 = W, ecc. In questo modo non solo i numeri, ma anche le informazioni di tipo testo sono rappresentate internamente al computer usando il codice binario. Il codice ASCII (American Standard Code for Information Interchange) • E una tabella che associa le diverse combinazioni che si possono formare con 7 bit (che sono 2^7=128) ai simboli usati nell alfabeto latino, ai principali segni di interpunzione e ad alcuni caratteri speciali • Il codice decimale va da 0 a 127 quello binario da 0 a 1111111 • Oltre al codice ASCII standard o stretto, esiste anche un codice esteso a 256 caratteri Il codice ASCII Il codice ASCII Il codice ASCII Il codice ASCII Ad esempio, in questo codice alla combinazione 10000012 (= 6510 ), corrisponde il carattere A ecc.. L unità di misura del mondo digitale: il bit • Il bit (binary digit): unità minima dell informazione digitale, una singola cifra 0 o 1 • 1 bit: la quantità di informazione fornita dalla scelta tra due diverse alternative Il Byte 1 Byte = 8 bit (1 bit quantità di informazione fornita dalla scelta tra due solo possibilità). 1 Byte può codificare 28 diverse possibilità: 256 combinazioni diverse di 0 e 1. (quantità di informazione fornita dalla scelta tra 256 possibilità) Unità di misura della memoria Grandezza Valore Circa 1KiloByte (KB) 210 = 1024 Byte 103 Byte 1 Mega (MB) 220= 10242= 1024 KB 106 Byte 1 Giga (GB) 230= 10243= 1024 MB 109 Byte 1 Tera (TB) 240= 10244= 1024 GB 1012 Byte 1 Peta (PB) 250= 10245= 1024 TB 1015 Byte Unità di misura della memoria bit 1 cifra binaria memorizza 0 oppure 1 byte 8 bit memorizza un carattere Kilobyte (KB) 1024 byte circa mezza pagina di testo Megabyte (MB) 1024 KB un libro di 200 pagine Gigabyte (GB) 1024 MB alcuni volumi Terabyte (TB) 1024 GB una biblioteca Petabyte (PB) 1024 TB molte biblioteche Lunghezza della parola di un calcolatore • Oltre ai dati numerici e al testo, anche le istruzioni elementari che la CPU è in grado di eseguire (somma, differenza, memorizzazione, ecc.) sono codificate in binario. • Ogni elaboratore usa una stringa di bit di lunghezza definita (parola) per codificare le istruzioni, gli indirizzi delle celle di memoria, ecc. • Elaboratori diversi possono avere parole di lunghezza diversa (8 bit, 16 bit, 32 bit, 64 bit). Rappresentazione dei numeri in un calcolatore • Quanti bit sono usati normalmente per rappresentare i numeri, per esempio i numeri interi? • Questo dipende dal tipo di elaboratore, ma si può anche stabilire in un linguaggio di programmazione di alto livello. • Tipicamente i numeri interi sono rappresentati (e memorizzati) con 16 o 32 bit, mentre i numeri reali con 32 o 64 bit). Codici a lunghezza fissa In generale, con N cifre a disposizione e base b, il numero più grande (intero positivo) rappresentabile si può esprimere come bN – 1 Esempio: N =4 – In base 10: 9999 = 104 - 1 – In base 2: 1111 – In base 16: = 24 - 1 FFFF = 164 - 1 – In base 8: 7777 = 84 - 1 Codici a lunghezza fissa Se si usa un numero prestabilito di cifre si ha. quindi, un codice a lunghezza fissa. In questo modo si pone anche un limite al numero massimo rappresentabile. Esempio: qual è il numero più grande rappresentabile con 4 cifre? – In base 10: 9999 – In base 2: 1111 (=1510) – In base 16: FFFF (=6553510) – In base 8: 7777 (=409510) Operazioni su numeri binari Addizione: 0+0=0 0+1=1 1+0=1 1+1=0 con riporto 0 con riporto 0 con riporto 0 con riporto 1 Esempi: 1 + 1 = 1 0 1 0 1 + 1 1 = 1 0 0 0 1 0 1 1 0 1 0 1 + 1 0 0 0 1 1 0 = 1 1 1 1 1 0 1 1 1 1 1 + 1 1 = 1 0 1 0 Operazioni su numeri binari Cosa succede se il risultato di un operazione supera il valore massimo rappresentabile con la lunghezza del codice utilizzato? Operazioni su numeri binari Consideriamo la seguente operazione aritmetica, immaginando di avere un codice a lunghezza fissa con tre cifre binarie (3 bit): 5+4 = 9 (nel sistema decimale) Ricordiamo: 510 = 1012 , 1 0 1 + 1 0 0 = 1 0 0 1 410 = 1002 Errore di overflow (il risultato (910 = 10012) non può essere codificato con tre bit) Codici a lunghezza fissa • Numeri maggiori di quello massimo rappresentabile causano problemi di overflow, ovvero per essere rappresentati richiedono più cifre di quelle a disposizione. • Esempio: 4 cifre – In base 10: 9999 + 1 = 1000010 – In base 2: 1111 + 1 = 100002 (=1610) – In base 16: FFFF + 1 = 1000016 (=6553610) – In base 8: 7777 + 1 = 100008 (=409610)