vuoi
o PayPal
tutte le volte che vuoi
appuntiDiIngegneria
Codifica e
Rappresentazione
delle informazioni
Sommario
1.1. Codifica e Rappresentazione delle Informazioni ................................................................................2
1.1.1. Codifica Binaria .............................................................................................................................5
1.1.2. Conversioni di Base .......................................................................................................................6
1.1.3. Rappresentazione di Interi Negativi ...............................................................................................7
1.1.4. Somma Binaria ..............................................................................................................................8
1.1.5. Rappresentazione di Numeri Reali .................................................................................................8
1
1.1. Codifica e Rappresentazione delle Informazioni
È stato già accennato che le informazioni, affinché possano essere gestite dai sistemi di
elaborazione, devono essere opportunamente codificate, quindi per informazione si intende tutto
ciò che può essere rappresentato tramite opportune sequenze di simboli in un alfabeto prefissato.
Un Codice C è un insieme di parole composte da simboli di un Alfabeto Σ che viene chiamato
anche alfabeto supporto di C. Invece la Codifica (o Rappresentazione) di un insieme di
informazioni I in un dato codice C è una funzione f:IC, ossia è una legge che associa ad ogni
informazione che si intende rappresentare una opportuna parola del codice C. In modo analogo la
Decodifica è una funzione g:CI. Un alfabeto di simboli deve generare parola dotate di:
Una Sintassi: la configurazione di simboli deve essere ammissibile per poter dare un
qualche tipo di informazione, cioè deve rispettare determinate regole di composizione.
Una Semantica: la parola generata deve avere un senso compiuto per poter dare un
qualche tipo di informazione.
Un esempio di Codifica molto utilizzata nel mondo dell’informatica è il Codice ASCII (American
Standard Code for Information Interchange), che è una codifica comune a livello globale costruita
in maniera tale da far comunicare tutti i calcolatori. Esso è composto da parole di lunghezza fissa a
7
2 =
7 bit (per un totale di 128 combinazioni), ciascuna del quale rappresenta in binario i simboli
non numerici usati nella scrittura (alfabeto, punteggiatura, parentesi, etc.) ed anche comandi
standard provenienti componenti di I/O (tastiera, stampante, etc.). 2
Dato che i dati vengono trasmessi in byte l’ottavo bit viene utilizzato per verificare la correttezza
del dato inviato (controllo di parità). Dato che il formato ASCII non viene più utilizzato come
protocollo di trasmissione, l’ottavo bit viene normalmente utilizzato per codificare caratteri non
standard. Anche utilizzando 256 configurazioni non è possibile modellare tutti i simboli utilizzati
nel mondo per comunicare (200.000), per tale motivo nel tempo sono nate diverse estensioni: la
prima estensione all’ASCII è stato il Latin-1 che utilizza un codice a 8 bit per modellare anche
lettere latine con accenti e segni diacritici (segni supplementari per precisare particolarità della
pronuncia). L’evoluzione attuale dell’Ascii è L’UNICODE, nella quale ogni carattere utilizza 16 bit,
per cui sono possibili ben possibili 65.536 configurazioni chiamate code point. Le code point che
vanno da 0 a 255 corrispondono al Latin-1; non tutte le configurazioni sono assegnate, per cui il
consorzio UNIOCDE vaglia continuamente nuove proposte. Per rappresentare i caratteri UNICODE
possono essere utilizzate diverse codifiche, tra cui la UTF-8 (Unicode Transformation Format, 8
bit), che negli ultimi anni è diventata la codifica principale di Unicode per internet secondo il W3C.
Anche i suoni devono essere rappresentati in un Calcolatore: un suono fisicamente è
rappresentato come un'onda (onda sonora) che descrive la variazione della pressione dell'aria nel
tempo, e si tratta di un segnale analogico. Per codificarlo occorre prima digitalizzarlo, scegliendo
opportunamente come parametri della codifica una frequenza di campionamento ed un numero
di bit da utilizzare per la quantizzazione di ciascun campione:
Il campionamento ad elevata frequenza e la quantizzazione con numero elevato di bit per
campione garantiscono una rappresentazione accurata. Le immagini invece vengono
rappresentate tramite una griglia o matrice di pixel (PIcture ELement) di ognuno dei quali è
memorizzata l’intensità luminosa (e/o il colore). I parametri importanti per la digitalizzazione di
immagini sono: la Dimensione (risoluzione), la Profondità, ed il Formato di rappresentazione
(Grayscale, RGB, Palette).
Un tipo molto importante di informazione è quella che specifica il valore di un numero naturale,
ma per rappresentare essi esistono diversi tipi di rappresentazione, che vengono suddivise in due
grandi classi: codifiche come quella romana, o italiana sono esempi di Codifiche Non Posizionali,
mentre invece quella decimale, binaria, ottale ed esadecimale sono esempi di Codifiche
Posizionali. L’attenzione si pone adesso sulle rappresentazioni posizionali pesate, le quali
associano alle cifre un diverso valore in base alla posizione che occupano nella stringa che
3
compone il numero. Esse sono definite dalla coppia (A, B) dove B > 1 è un intero chiamato Base
del Sistema, ed A è l’insieme dei simboli distinti dell’alfabeto, e devono essere tali che |A| = B. Gli
esempi tipici sono:
o Binario: B = 2, A = {0,1}
o Ottale: B = 8, A = {0,1,2,3,4,5,6,7}
o Decimale: B = 10, A = {0,1,2,3,4,5,6,7,8,9}
o Esadecimale: B = 16, A = {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
Ogni cifra rappresenta un numero distinto compreso fra 0 e B -1, ad esempio nel caso della
codifica esadecimale 1 = uno, 2 = due, A = dieci, F = quindici. Un valore numerico è rappresentato