Rappresentazione
dell’Informazione
1
La codifica delle informazioni
codifica
INFORMAZIONI
forma adatta
per essere trattata
dall’elaboratore
DATI
interpretazione
2
Il bit
 Si consideri un alfabeto di 2 simboli: ‘0’, ‘1’
 Che tipo di informazione si può rappresentare con un bit?
3
La Cavalcata di Paul Revere
Ascoltate
Ascoltatefigli
figlimiei,
miei,vivivoglio
voglioraccontare
raccontaredidiPaul
PaulRevere
Revereeedella
dellasua
suacavalcata
cavalcatadidi
mezzanotte
mezzanottedel
del19
19aprile
aprile1775.
1775.
Coloro
Coloroche
chepotrebbero
potrebberoricordare
ricordarequel
quelmemorabile
memorabilegiorno
giornoeel’anno
l’annosono
sonoormai
ormai
morti
mortitutti.
tutti.
Egli
Eglidisse
dissealalsuo
suoamico
amico“Se
“Segli
gliinglesi
inglesigiungeranno
giungerannodalla
dallaterra
terraoodal
dalmare,
mare,questa
questa
notte
notteappendi
appendiuna
unalanterna
lanternasula
sulacampanile
campaniledella
dellaOld
OldNorth
NorthChurch
Churchcome
come
segnale.
segnale.
Una
Unalanterna
lanternase
sevengono
vengonoda
daterra,
terra,due
duese
sevengono
vengonodal
dalmare.
mare.Io
Iosarò
saròsulla
sullariva
riva
opposta
oppostapronto
prontoaacavalcare
cavalcareeedare
darel’allarme
l’allarmegenerale.
generale.In
Inogni
ognivillaggio
villaggiodel
del
Middlesex
Middlesexeeininogni
ognifattoria,
fattoria,i icontadini
contadinisaranno
sarannopronti
prontiaabattagliare.”
battagliare.”
 Entrambe spente (00): Situazione tranquilla
 Solo una accesa (01 o 10): Gli inglesi attaccano da terra
 Entrambe accese (11): Attacco dal mare
4
Informazioni complesse
 Per codificare i nomi delle 4 stagioni bastano 2
bit
Ad esempio:
 0 0 per rappresentare Inverno
 0 1 per rappresentare Primavera
 1 0 per rappresentare Estate
 1 1 per rappresentare Autunno
 Quanti bit per codificare i nomi dei giorni
della settimana?
5
Bit Necessari
 Le macchine hanno vincoli spaziali
E’ necessario conoscere il massimo valore
rappresentabile
Con n bit si può rappresentare al massimo il
numero 2n -1
E’ facile determinare che per poter rappresentare
fino ad X combinazioni diverse, sono necessari
un numero n di bit pari a

log2 X
 Dove la notazione 
y resitituisce il più piccolo numero
intero maggiore o uguale a y
6
Bit necessari
 In generale, con N bit, ognuno dei quali può
assumere 2 valori, possiamo rappresentare
2N informazioni diverse (tutte le possibili
combinazioni di 0 e 1 su N posizioni)
viceversa
 Per rappresentare M informazioni dobbiamo
usare N bit, in modo che 2N >= M
7
Overflow
 Esiste un limite al numero di bit impiegati per
rappresentare un numero
 Dato che la rappresentazione è formata da un numero
finito di bit, se si supera tale limite si ha errore (overflow)
MAX
Numero intero
rappresentato
...
4
3
2
1
1 2 3 4...
Numero intero
8
Codifica binaria
Esiste una particolare aggregazione di bit
che è costituita da 8 bit (28 = 256
informazioni) e prende il nome di byte
Di solito si usano i multipli del byte
Kilo
KB
210 (~ un migliaio, 1024 byte)
Mega
MB
220 (~ un milione, 1KB x 1024)
Giga
GB
230 (~ un miliardo, 1MB x 1024)
Tera
TB
240 (~ mille miliardi, 1GB x 1024)
Peta
PB
250 (~ miliardo miliardi, 1TB x 1024)
9
Digitale o Analogico?
 I segnali analogici sono molto sensibili alle interferenze (rumore)
 I segnali digitali possono assumere solo due stati
 Per un dispositivo è semplice distinguere questi due stati, per cui vie è una
maggiore immunità alle interferenze
10
Perché Digitale?
 Una buona foto in bianco e nero presa da un
giornale avrà circa 256 sfumature di grigio
 Rappresentazione analogica
256 gradi di luminosità con una lampada
 Attenzione alle interferenze provocate dalla nebbia!
 Rappresentazione digitale
8 lampade (256 configurazioni diverse)
 Ciascuna configurazione sarebbe più sicura anche in caso di
nebbia!
11
Rappresentazione Binaria
codifica
rappresentazione
binaria
informazione
decodifica
Mondo esterno
Computer: memorizzazione,
elaborazione
Analogico Digitale
12
Informazioni
 Numeri
Interi positivi
Positivi e negativi
Reali
 Testi
Informazioni tradizionali
 Immagini fisse
Vettoriali
Bitmap
 Audio
 Video
Informazioni multimediali
13
Sistemi Numerici
14
Generalità
Per determinare un sistema numerico serve
Un insieme limitato di simboli (le cifre), che
rappresentano quantità prestabilite (1, 2, V, X,
M)
Le regole per costruire i numeri
Sistemi numerici posizionali
Sistemi numerici non posizionali
15
Sistemi Numerici
Sistemi numerici non posizionali
Il valore delle cifre è indipendente dalla
posizione
Es. Numeri romani
Sistemi numerici posizionali
Il valore delle cifre dipende dalla loro posizione
all’interno del numero
Ogni posizione ha un peso
16
Sistemi Numerici Posizionali
Esempio
N = d3d2d1d0  V(N)=d3p3+d2p2+d1p1+d0p0
N  Rappresentazione del numero
V(N)  Valore del numero
Sistemi a base fissa
pi = ri
r è la base del sistema
17
Il Sistema Decimale
È un sistema numerico posizionale a base
fissa
Il sistema decimale utilizza
r = 10
d = 0;1;2;3;4;5;6;7;8;9
18
Sistema Decimale: Esempio
Cifra meno
significativa
Cifra più
significativa
8427
=
8 103 + 4 102 + 2 101 + 7 100
19
Sistema Binario
Anche il sistema binario è un sistema
numerico posizionale a base fissa
Il sistema binario utilizza
r = 2
d = 0;1
Ogni cifra è detta bit (da BInary digiT)
20
Sistema Binario: Esempio
Bit meno
significativo (LSB)
Bit più
significativo (MSB)
10112
=
1 23 + 0 22 + 1 21 + 1 20 = 1110
21
Decimale a Binario
Es.: 11510 = 11100112
115
2
1
57
2
1
28
2
0
14
2
0
7
2
1
3
2
1
1
2
1
0
22
Somma binaria
La tabella di definizione è:
0+0 = 0
0+1 = 1
1+0 = 1
1+1 = 0
1+1+1= 1
con riporto di 1
con riporto di 1
 Esempi
23
Sottrazione binaria
La tabella di definizione è:
0-0
1-0
1-1
0-1
=
=
=
=
0
1
0
1
con prestito di 1 dal
bit di peso superiore
 Esempi
24
Altre Basi di Numerazione Comuni
Sistema ottale
r = 8
d = 0,1,2,3,4,5,6,7
Sistema esadecimale
r = 16
d = 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
25
Esadecimale e Binario
Esiste una corrispondenza diretta tra cifre
esadecimali e il corrispondente binario
Esadecimale: 16 cifre
4 bit per rappresentare una cifra esadecimale
110001102
C
6
26
Conversione da binario ad esadecimale

Esiste una corrispondenza diretta tra cifre
esadecimali e il corrispondente binario
100010112
15 = 1111 = F
1000 1011
8
Bh
27
Numeri Negativi
Esistono diverse possibilità di
rappresentazione
Modulo e segno (M&S)
Complemento a 2 (C2)
28
Modulo e Segno
Convenzione per il bit più significativo
0: segno positivo
1: segno negativo
Esempio
+5  00101
-10  11010
Esistono due rappresentazioni per lo ‘0’
+0  00000
-0  10000
29
Complemento a 2
Dato X in base 2 di n bit
 1 + NOT(X) è il complemento a 2 di X
Se X=01011, il suo complemento a 2 è
1 + NOT(01011) = 1 + 10100 =10101
Regoletta pratica
Il complemento a 2 si calcola analizzando i bit
del numero a partire da destra: si riportano
invariati tutti gli zeri fino al primo bit a 1, si
riporta invariato questo stesso bit a 1, si
complementano tutti gli altri bit
30
Complemento a 2
 Se dn-1 dn-2 … d2 d1 d0 è un numero binario
rappresentato in C2 a n bit, l’equivalente
decimale si calcola come
-2n-1dn-1+2n-2dn-2+…+22d2+21d1+d0
31
Osservazioni sul C2
Unica rappresentazione dello ‘0’
I numeri positivi hanno il bit più significativo
(segno) posto a zero
I numeri negativi sono rappresentati dal
complemento a 2 del corrispondente
numero positivo, segno compreso
Esempio
+310  000112
C2(000112) = 111012
111012  -310
32
Complemento a 2 vs. M&S
Usando modulo e segno
La somma algebrica di numeri positivi e
negativi può generare problemi
Servono sistemi hardware specifici per la
gestione corretta del formato
E' necessario riconoscere il segno dal primo bit
Usando il complemento a due
La sottrazione si esegue con una somma!
33
Intervallo di Valori Rappresentabili
Rappresentazione M&S
-2n-1 + 1  N  2n-1 - 1
Rappresentazione C2
-2n-1  N  2n-1 - 1
34
Rappresentazione Numeri Reali
E’ spesso necessario utilizzare numeri reali
Due rappresentazioni
Virgola Fissa
Virgola Mobile
35
Virgola Fissa
Intero
0
1
0
1
0
0
1
1
= 26 + 24 + 21 + 20= 83
-27 26 25 24 23 22 21 20
Virgola Fissa
0
1
0
1
0
0
0
0
= 2-1 + 2-3 = 0.5 + 0.125 = 0.625
-20 2-1 2-2 2-3 2-4 2-5 2-6 2-7
36
Virgola Mobile
E’ la risposta alla necessità di manipolare
numeri di ordini di grandezza diversi
Notazione scientifica (numeri espressi nella
forma)
X.YYY * 10W
X: parte intera
Y: parte frazionaria
W: esponente
37
Virgola Mobile
Nomenclatura
A = M * BE
M: mantissa
B: base
E: esponente
Necessita di un segno per la mantissa e uno
per l’esponente
38
Virgola Mobile
Forma normalizzata
Numero = ± 1.XXXXXXX * 2a
.XXXXXXX parte frazionaria
a è detto esponente vero
39
Virgola Mobile
 Rappresentazione IEEE P754 (32 bit)
1 bit per il segno
8 bit per l’esponente (rappresentazione eccesso 127)
23 per la mantissa (parte frazionaria - normalizzata)
31
30
23
Segno Esponente
S
E
1
8
22
0
Mantissa
F
23
SS
E-127
N
=
(-1)

2
N = (-1) 2E-127
1.F
1.F
40
Virgola mobile
L'esponente influisce principalmente sul
numero massimo (e di conseguenza
minimo).
La mantissa influisce principalmente
sull'approssimazione (ovvero sulla
precisione).
41
Virgola mobile
 La procedura standard per la conversione da numero
decimale a numero binario P754 single è la seguente:
Prima di tutto il numero, in valore assoluto, va convertito in
binario.
Il numero va poi diviso (o moltiplicato) per 2 fino a ottenere
una forma del tipo 1,xxxxxx.
Di questo numero viene eliminato l'1 iniziale (per risparmiare
memoria)
Il numero di volte per cui il numero è stato diviso (o
moltiplicato) per 2 rappresenta l'esponente: questo valore
(decimale) va espresso in eccesso 127, ovvero è necessario
sommare 127 e convertire il numero risultante in binario. Nel
caso di rappresentazione a precisione doppia (v. definizione
seguente) il valore dell'esponente viene espresso in eccesso
1023.
42
Virgola mobile
 Per esempio, convertiamo il valore − 14,312510 in
binario P754:
Convertiamo prima di tutto il numero: 1410 = 11102 per la
parte intera e 0,312510 = 0,01012. Quindi il numero definitivo
è 1110,01012 (segno escluso).
Dividiamo poi il numero per 2 per ottenere la seguente
notazione: 1110,01012 = 1,11001012 * 23
La mantissa diventa, quindi: 1100101.
Per esprimere l'esponente in eccesso 127, infine: 127 + 3 =
13010 = 100000102
Il numero, alla fine, sarà espresso nel formato:
1 10000010 11001010000000000000000
43
Virgola mobile
 0,312510 = 0,01012
 Alternativa:
0,3125 / 0,5 = 0,625 → riporto 0
0,625 / 0,5 = 1,25 → riporto 1
0,25 / 0,5 = 0,5
→ riporto 0
→ riporto 1
0,5 / 0,5 = 1
 (ovvero 2-1)
44
Virgola mobile
 0,312510 = 0,01012
 Devo esprimere 0,3125 in forma normalizzata, divido
per 0,5 (ovvero 2-1) fin quando non ottengo un intero:
0,3125 / 0,5 = 0,625 / 0,5 = 1,25 / 0,5 = 2,5 / 0,5 =
5
Ho diviso 4 volte
5=1012
-4
La forma normalizzata sarà data da 1012*2 ,
ovvero 0,01012
Nota bene: dividere per 0,5 equivale a moltiplicare per 2.
45
Virgola mobile
 In base al numero di bit che abbiamo a disposizione
possiamo utilizzare tre formati: il formato a precisione
singola (32 bit), il formato a precisione doppia (64 bit)
e il formato a precisione quadrupla (128 bit).
Nel primo caso possiamo scrivere il valore utilizzando 1
bit per il segno, 8 bit per l'esponente e 23 bit per la
mantissa
Nel secondo caso servirà 1 bit per il segno, 11 bit per
l'esponente e 52 per la mantissa.
Nel terzo caso servirà 1 bit per il segno, 15 bit per
l'esponente e 112 per la mantissa.
46
Problemi con la virgola mobile
 In generale, questo tipo di numeri si comportano in
modo molto simile ai numeri reali. Tuttavia ciò porta
spesso i programmatori a non considerare
l'importanza di un'adeguata analisi numerica sui
risultati ottenuti.
 Ci sono molte incongruenze tra il comportamento dei
numeri in virgola mobile in base 2 impiegati
nell'informatica e quello dei numeri reali, anche in casi
molto semplici (ad esempio la frazione 0,1 che non
può essere rappresentata da nessun sistema binario
in virgola mobile). Per questo non è un formato
impiegato ad esempio in campo finanziario.
47
Numeri speciali
Categoria
Esp.
Mantissa
Zeri
0
0
Numeri
denormalizzati
Numeri normalizzati
0
non zero
1-254
qualunque
Infiniti
255
0
Nan (not a number)
255
non zero
48
Limiti della precisione singola
Esponente
0
1
2
10
11
23
24
127
Minimo
1
2
4
1024
2048
8388608
16777216
1.7014e38
Massimo
1.999999880791
3.99999976158
7.99999952316
2047.99987793
4095.99975586
16777215
33554430
3.4028e38
Precisione
1.19209289551e-7
2.38418579102e-7
4.76837158203e-7
1.220703125e-4
2.44140625e-4
1
2
2.02824096037e31
49
Esercizi
Calcolare la rappresentazione binaria P754
dei seguenti numeri decimali:
 +1,58
 -34652,6
 0,000346526
 -4,53 * 10-3
50
Memorizzazione su
Calcolatore e Codici
51
Bit, Byte e Word
L'unità atomica è il bit (BInary DigiT)
L'insieme di 8 bit è detto byte
Word
Tipicamente 16, 32 o 64bit
Insieme di bit la cui dimensione è una
importante caratteristica del calcolatore
considerato. Essa influenza
La larghezza degli indirizzi
La dimensione dei registri del processore
Larghezza dei bus (word o multipli di essa)
52
Intervalli di Variabilità
Bit
Numero di configurazioni: 2
Intervallo di variabilità: {0,1}
Byte
Numero di configurazioni: 256
Intervallo di variabilità: dipende dal tipo di
codifica
53
Intervalli di Variabilità (byte)
Modulo
256 configurazioni
Intervallo di Variabilità: [0, 255]
Modulo e segno
256 configurazioni
Intervallo di Variabilità: [-127, +127]
Complemento a 2
256 configurazioni
Intervallo di Variabilità: [-128, +127]
54
Codifica dei Testi
Si utilizza una tabella (arbitraria)
Standard oggi (quasi) universalmente
riconosciuto
Codice ASCII (American Standard Code for
Information Interchange)
Ogni carattere (simbolo) è codificato con 7 bit
128 simboli diversi
55
Tabella dei Codici ASCII
56
Codice ASCII - note
I caratteri alfabetici sono consecutivi e in
ordine (alfabetico)
La distanza tra una lettera minuscola e la
corrispondente maiuscola è costante
Le cifre decimali sono consecutive e in
ordine
(da 0 a 9)
Grazie alla codifica numerica è possibile
dire che B = A + 1 oppure che A = a - 32
57
Codice ASCII Esteso
 Si utilizzano 8 bit
256 simboli diversi
58
UNICODE
 Abbiamo considerato il codice
Extended ASCII: 8 bit per carattere
È stato basato dal codice ASCII: 7 bit per carattere
 Il codice ASCII non include à, è, é, ì, ò, ù, per esempio
 Un altro codice
UNICODE, 16 bit per carattere (Extended ASCII +
caratteri etnici)
216 = 65.536 simboli
59
UNICODE - Font
 In informatica
il tipo di
carattere o
font è un
insieme di
caratteri
tipografici
caratterizzati
e accomunati
da un certo
stile grafico.
60
Font
the quick brown fox jumps over a lazy dog
the quick brown fox jumps over a lazy dog
 the quick brown fox jumps over a lazy dog
the quick brown fox jumps over a lazy
dog
 the quick brown fox jumps over a
lazy dog
the quick brown fox jumps over a lazy dog
 thequick brown fox jumps over a lazy dog
61
Rappresentazione di parole
Abbiamo visto come rappresentare i singoli
caratteri, ma le parole?
In informatica le parole sono “stringhe”,
ovvero concatenazioni di caratteri.
62
Stringhe
Supponiamo di voler codificare la parola
“STUDENTE”:
STUDENTE
=
83 ; 84 ; 85 ; 68 ; 69 ; 78 ; 84 ; 69
Ovvero la parola studente è composta da 8
caratteri in sequenza.
63
Suono digitale

Formato standard per i CD audio
• frequenza di campionamento di 44'100 Hz
• quantizzazione su 65'536 livelli
(un campione viene codificato su 16 bit)


Un secondo di musica stereo richiede 44'100 campioni di 16 bit (2
byte) ciascuno per due canali, quindi 176'400 byte.
L’errore che si commette nella ricostruzione del segnale sonoro è
difficilmente rilevabile da parte di un orecchio umano.
Foto digitali




Per la codifica digitale delle immagini le operazioni di
campionamento e quantizzazione si applicano nello spazio invece
che nel tempo.
Il campionamento consiste nel dividere l’immagine in sottoinsiemi
(pixel, cioè picture element), per ognuno dei quali si dovrà
prelevare un campione che si considera rappresentativo del
colore di tutto il sottoinsieme.
La quantizzazione è la codifica del colore associato a ogni pixel: i
più recenti formati utilizzano 32 bit (4 byte) per pixel: 8 bit per
ognuna delle tre componenti fondamentali (RGB: red, green,
blue) e altri 8 per gestire le trasparenze.
Memoria necessaria per immagini non compresse (bitmap)
•
•
•
•
•
•
per un’immagine
per un’immagine
per un’immagine
per un’immagine
per un’immagine
…
di 640480 pixel servono 1'228'800 byte;
di 800600 pixel servono 1'920'000 byte;
di 1024768 pixel servono 3'145'728 byte;
di 12801024 pixel servono 5'242'880 byte;
di 16001200 pixel servono 7'680'000 byte;
Il successo del digitale


Rumore: effetto dell’ambiente sul
supporto.
Tensione (V)
Quanto un supporto è “immune”
5
al rumore?
• Codifica analogica:
analogica ogni
configurazione è lecita dal punto di
vista informazionale e quindi risulta
impossibile distinguere il rumore dal
segnale.
• Codifica digitale:
digitale un valore binario è
associato a un insieme di
configurazioni valide quindi si può
• riconoscere il rumore che porta in
configurazioni non lecite
• trascurare il rumore che non fa uscire il
segnale dall’insieme associato alla stessa
configurazione
4
3
2
1
0
1 binario
Non
lecito
0 binario
Come ridurre il numero di bit
Esempio
• successione di un milione di caratteri, ognuno scelto dall’insieme {A, C,
G, T};
T}
• la frequenza dei quattro caratteri all’interno della successione non è
uguale: A si presenta nel 50% dei casi, C nel 25%,
25% G e T solo nel 12.5%
dei casi.
Codifica digitale a lunghezza costante
• due bit per ciascuno dei simboli, per esempio: A = 00,
A = 00 C = 01,
C = 01 G = 10 e
T = 11;
T = 11
• la lunghezza complessiva della successione è quindi pari a 2 milioni di
bit.
bit
Codifica a lunghezza variabile (che tenga conto della
distribuzione)
• A = 0,
A = 0 C = 10,
C = 10 G = 110 e T = 111;
T = 111
• la lunghezza complessiva della successione è di 1.75 milioni di bit
(1×50% + 2×25% + 3×12.5% + 3×12.5%) bit/carattere × 1 milione di
caratteri
Il cambiamento di codifica permette di ridurre il numero di bit
utilizzato senza perdere informazione.
La compressione dei dati

Gli algoritmi di compressione dei dati possono essere distinti in
due categorie fondamentali
• Compressione lossless,
lossless se non provoca la perdita di informazione
• Compressione lossy,
lossy se provoca la perdita di informazione

Gli algoritmi di compressione lossless sfruttano le regolarità nei
dati
• RLE (Run Length Encoding): successioni di n simboli uguali vengono
rappresentati con una coppia <simbolo, n>
• Tecniche basate su dizionario: sequenze di simboli ripetute trovate
analizzando i dati sono sostituite con simboli elementari memorizzando
le corrispondenze in un dizionario

Gli algoritmi di compressione lossy sono specifici per i diversi
domini applicativi.

Un semplice esempio con
dizionario
Compressione lossless con tecnica basata su un
dizionario
• Testo di esempio:
“I re di Francia della dinastia Carolingia sono: Carlo
II, Luigi II di Francia, Luigi III di Francia, Carlomanno
di Francia, Carlo III detto il grosso, Odo, Carlo III
detto il semplice, Roberto I di Francia, Rodolfo Duca
di Borgogna, Luigi IV di Francia, Lotario di Francia,
Luigi V di Francia” (lunghezza: 292 caratteri)

Analisi delle regolarità presenti nel testo:
• Si individuano le sequenze ripetute (parole) contando
le ripetizioni e si compila il dizionario (vedere
tabella)
• Si assegna un simbolo che la sostituisce ad ogni
parola
• Il testo diventa:
“I re 1 2 della 1nastia Carolingia sono: 5 3, 4 3 1 2, 4
3I 1 2, 5manno 1 2, 5 3I 6 7 grosso, Odo, 5 3I 6 7
semplice, Roberto I 1 2, Rodolfo Duca 1 Borgogna, 4
IV 1 2, Lotario 1 2, 4 V 1 2” (lunghezza: 187 caratteri
+ 35 caratteri per il dizionario = 222 caratteri - 76%
della lunghezza originaria)
Indice
Parola
N
1
di
1
0
2
Francia
8
3
II
5
4
Luigi
4
5
Carlo
4
6
detto
2
7
il
2