Corso di Informatica per Giurisprudenza Matteo Cristani Dipartimento di Informatica Facoltà di Scienze MM. FF. NN. Università degli Studi di Verona http://www.sci.univr.it/~cristani
Agenda La codifica dell'informazione Simboli e messaggi; Misura dell'informazione; Nozione di bit Codici digitali Codice ASCII/ANSI/UNICODE Tipi di file e metodi di codifica File testo e binari Codifica digitale dei dati Aritmetica in base 2
Comunicazione Nozione chiave: canale di comunicazione Sorgente: un ente in grado di codificare messaggi Destinazione: un ente in grado di decodificare messaggi
Simboli e messaggi Simbolo Messaggio Canale La codifica di un contenuto Messaggio Il contenuto di una comunicazione simbolica Canale Un mezzo di trasmissione dell’informazione
Codifica simbolica Associazione segno alfabetico-messaggio Concetto di codice Tabella che associa un simbolo del codice sorgente ad un numero Motivazione: Usare codifiche elementari I numeri sono universali I numeri ammettono codifiche minime
Codice minimo Dato un alfabeto la trasmissione di un simbolo comporta un attesa di messaggio da parte della destinazione Se la destinazione ottiene il messaggio decodifica per un elemento tra quelli disponibili nel codice sorgente
Informazione Più piccolo è il codice sorgente e meno informazione porta il singolo messaggio L’informazione significativa è minima quando disambigua tra due elementi (50% di possibilità) La disambiguazione di un singolo simbolo è 0 Chiamiamo informazione portata da un messaggio il numero di disambiguazioni binarie necessarie per trasmettere il messaggio stesso
Misura di un canale Se un canale porta informazione misurabile come disambiguazione tra n simboli chiamiamo informazione I portata dal canale il valore
Misure base Per ogni sistema simbolico, se un singolo simbolo costituisce il sistema ogni trasmissione è priva di informazione Infatti
Nozione di bit La misura minima è determinata da un sistema con due simboli, per cui l’informazione misura 1 L’unità di misura è un bit
Sistemi simbolici e loro misure L’informazione trasportata da un sistema con 4 simboli è 2 bit, con 8 simboli 3 bit, con sedici simboli 4 bit In generale, per sistemi simbolici con 2n simboli alfabetici la misura dell’informazione trasportata è n bit
Bit simbolici Per un alfabeto con due simboli ogni messaggio porta 1 bit Chiamiamo bit anche la codifica simbolica basata su due simboli In altre parola chiamiamo bit una singola cifra binaria (origine effettiva del nome, acronimo di binary digit)
Rappresentazione dell’informazione Per qualsiasi numero intero k sia n il più piccolo intero tale che 2n ≥ k Il numero di bit necessari per rappresentare un alfabeto di ordine k è n Esempio Per codificare 26 simboli occorrono 5 bit essendo 32=25 la più piccola potenza del due maggiore o uguale a 26
Misure di memoria Un dato memorizzato utilizza bit simbolici Ogni sistema di memoria raggruppa i dati in token di 8 bit chiamati byte Un insieme di 4, 6 o in alcuni sistemi evoluti 8 byte forma una parola macchina I multipli dell’unità byte sono Kilobyte (Kb) = 1024 byte Megabyte (Mb) = 1024 Kb Gigabyte (Gb) = 1024 Mb
Misure di canale Un canale di comunicazione si misura in informazione trasportata al secondo Un baud (bs) è l’unità di misura della velocità di trasmissione dell’informazione di un canale Multipli usati per la velocità del modem di casa Kbs (standard 56 kbs) Multipli usati per la velocità di modem ad alta velocità o per le reti locali Mbs (standard 10 o 100 Mbs)
Codifiche simboliche standard Il più diffuso codice simbolico è ASCII Acronimo per American Standard Code for Information Interchange Integrato con le due nuove codifiche ANSI e UNICODE American National Standard Institute United Nations International CODE
Codice ASCII Il codice ASCII utilizza 1 byte per ogni simbolo Il codice rappresenta sovrabbondantemente (2 volte): i simboli alfabetici e numerici, i simboli standard della codifica di macchina da scrivere come . , : ; Un insieme di simboli speciali codificati come caratteri di controllo (del flusso di testo) per azioni di movimento come andare a capo, spaziare, scendere di una linea o di una pagina
Tabella ASCII estesa (1)
Tabella ASCII estesa (2)
Tabella ASCII estesa (3)
Tipi di file e metodi di codifica Struttura dei file Un file è una sequenza di dati Esistono due livelli di interpretazione Livello della lettura (e trasmissione) Livello della strutturazione dei dati A livello della lettura e trasmissione Per byte: file di testo Per parola: file binari A livello di strutturazione dei dati Per struttura dei record: file applicazione Per relazione con il sistema operativo: file eseguibili e di supporto
File di testo e binari File di testo sono file che si leggono con applicazioni di text editing, cioè applicazioni che leggono byte per byte e trasformano ogni byte in un carattere secondo il codice ASCII Quindi i file di testo si chiamano anche file ASCII I file binari possono essere letti solamente mediante applicazioni specifiche che conoscono la codifica per quel tipo di file I file WORD sono file leggibili solamente con WORD e applicazioni compatibili I file EXCEL sono leggibili solamente con EXCEL
Codifiche ASCII Esistono codifiche ASCII per tipi di file interpretabili come file non di testo Esempio: PDF, PostScript, HTML Tali file sono file di testo, ma sono intelleggibili secondo il significato della codifica da interpreti che trasformano le codifiche ASCII Vantaggio Indipendenza dalla piattaforma
Codifica digitale dei dati I numeri nel calcolatore ammettono interpretazione secondo il codice ASCII, come codifiche ASCII o come numeri in se stessi Poiché un byte è formato da otto bit, le codifiche in base a potenza del due sono 8 cifre binarie (base 2) 4 cifre ottali (base 8) 2 cifre esadecimali (base 16)
Aritmetica in base 2 Codifica semplice in base 2 Somma binaria semplice 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10
Somma binaria in colonna Poiché la somma in colonna di due numeri comporta il riporto della massima cifra di riporto per la somma di due numeri di una cifra il massimo che possiamo trovare è 1 con il riporto di 1 Le regole sono ovviamente le stesse della somma in colonna per numeri decimali
Esempio di somma in colonna 110011 + 101010 = -------------- 1011101
Prodotto di numeri binari Non esistono tabelline in base 2 0 * 0 = 0 0 * 1 = 0 1 * 0 = 0 1 * 1 = 1
Rappresentazione posizionale Poiché la notazione di base è ovviamente posizionale una cifra c base b di posizione k contando da destra vale come addendo per la cifra rappresentata moltiplicato bk c* bk
Cambio di base Conversione da 2 a 10 Per un numero x1x2…xm in base 2 si ha x1x2…xm = x1*2m*x2*2(m-1)xm*20
Conversione da 10 a 2 Divisione successiva del numero in base 10 da convertire per due Il resto di ogni divisione fornisce la cifra in ordine ultima, penultima, terzultima, eccetera
Conversione da 10 a 2 - esempio Sia 2456 il numero da convertire 2456 : 2 = 1228 (0) 1228 : 2 = 614 (0) 614 : 2 = 307 (0) 307 : 2 = 153 (1) 153 : 2 = 76 (1) 76 : 2 = 38 (0) 38 : 2 = 19 (0) 19 : 2 = 9 (1) 9 : 2 = 4 (1) 4 : 2 = 2 (0) 2 : 2 = 1 (0) 1 : 2 = 0 (1) Risultato 245610 = 1001100110002