Rappresentazione
dell’informazione
La codifica delle informazioni
codifica
INFORMAZIONI
forma adatta
per essere trattata
dall’elaboratore
DATI
interpretazione
Ing. L.Testa - Fondamenti di Informatica
2
Informazioni
„
„
Numeri
„ Interi positivi
„ Positivi e negativi
„ Reali
Testi
Informazioni tradizionali
„
„
„
Immagini fisse
„ Vettoriali
„ Bitmap
Audio
Video
Informazioni multimediali
Ing. L.Testa - Fondamenti di Informatica
Rappresentazione dell’informazione
„
Interessa soprattutto distinguere informazioni
diverse
„
„
Con un solo simbolo è impossibile
Pertanto l’insieme minimo è costituito da
2 simboli (alfabeto binario)
Ing. L.Testa - Fondamenti di Informatica
Rappresentazione dell’informazione
„
„
„
Le informazioni vengono rappresentate mediante
sequenze di simboli
Nel caso dei simboli binari, le informazioni
(numeri, oggetti, parole) sono rappresentate da
sequenze dei due simboli (0 e 1)
Servono regole di manipolazione dei simboli
Ing. L..Testa Fondamenti di Informatica
Sistemi numerici
5
Sistemi numerici
„
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
Ing. L.Testa - Fondamenti di Informatica
Sistemi numerici
„
„
Sistemi numerici non posizionali:
„ valore delle cifre è indipendente dalla posizione
Sistemi numerici posizionali:
„ il valore delle cifre dipende dalla loro posizione
all’interno del numero
(ogni posizione ha un peso)
Ing. L.Testa - Fondamenti di Informatica
Sistemi numerici posizionali
„
Esempio:
N = d3 d2 d1 d0 ; 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
„
„
dove:
r è la base del sistema
di rappresentano le cifre
Ing. L.Testa - Fondamenti di Informatica
Sistemi posizionali a base fissa
N = dn-1 dn-2 … d1 d0
V(N) = dn-1*rn-1 + dn-2*rn-2 + … + d1*r1 + d0*r0
„
Proprietà
„ È a rango illimitato (ogni numero intero vi può
essere rappresentato)
„
„
È a rappresentazione unica (ad ogni numero
intero corrisponde un solo insieme ordinato di cifre)
È irridondante (ad ogni insieme ordinato di cifre
corrisponde un solo numero non rappresentato da altri
insiemi ordinati)
Ing. L.Testa - Fondamenti di Informatica
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
Ing. L.Testa - Fondamenti di Informatica
Sistema decimale
8427
=
8*103 + 4*102 + 2*101 + 7*100
Ing. L.Testa - Fondamenti di Informatica
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)
Ing. L.Testa - Fondamenti di Informatica
Sistema binario
1011 = 1*23 + 0*22 + 1*21 + 1*20 = 1110
Ing. L.Testa - Fondamenti di Informatica
Altri sistemi utilizzati
„
„
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
Ing. L.Testa - Fondamenti di Informatica
Conversioni di base
Dal sistema binario a quello decimale
„
„
Utilizzando la definizione:
„ 10102 = (1*8 + 0*4 + 1*2 + 0*1)10 =
= (8+2)10 = 1010
Oppure si può utilizzare il seguente formato:
„ N = ((dn-1*r + dn-2)*r + dn-3) …)*r + d0
Ing. L.Testa - Fondamenti di Informatica
1
Conversioni di base
Dal sistema decimale a quello binario
Esempio: 11510 = 1110011 2:
„
115
1
d0
d1
2
57
1
2
28
0
d2
2
14
0
d3
2
7
1
d4
2
3
1
d5
2
1
1
d6
Ing. L.Testa - Fondamenti di Informatica
Numeri frazionari
E’ possibile anche rappresentare numeri frazionari:
„ le potenze variano anche nel campo negativo
V(N) =
Σi di*ri = dn-1*rn-1 +…+ d0*r0 + d-1*r-1 +…+ d-m*r-m
N = dn-1 dn-2 … d1 d0 . d-1 d-2 … d-m+1 d-m
Ing. L.Testa - Fondamenti di Informatica
2
0
Conversioni di base
(per numeri frazionari)
Dal sistema binario a quello decimale
„
Sempre utilizzando la definizione:
0.1012 = 0*20 + 1*2-1 + 0*2-2 + 1*2-3=
= (0.5+0.125)10 = 0.62510
Ing. L.Testa - Fondamenti di Informatica
Conversioni di base
(per numeri frazionari)
Dal sistema decimale a quello binario
„
Esempio: 0.62510 = 0.101 2:
0.625 *
2
1.250 *
2
0.500 *
2
1.000
Ing. L.Testa - Fondamenti di Informatica
0.62510 = 0.101
2
Conversioni di base
Dal sistema decimale a quello binario
N.B.: Per convertire un numero composto da una parte
intera e una frazionaria in un altro sistema numerico,
occorre convertire separatamente le due parti e
successivamente giustapporre.
Ing. L.Testa - Fondamenti di Informatica
Conversione da binario ad esadecimale
100010112
1000 1011
8Bh
Ing. L.Testa - Fondamenti di Informatica
16 = 24 !!!
Numero di cifre necessario
„
Le macchine hanno vincoli spaziali:
„ è necessario conoscere il massimo valore
rappresentabile:
„ con n bit si può rappresentare al massimo il
numero 2n -1
„ è facile determinare che
n = INT( log2 (X+1) )
Ing. L.Testa - Fondamenti di Informatica
Operazioni aritmetiche
„
„
Per effettuare operazioni è necessario conoscere
la definizione del comportamento per ogni coppia
di simboli
Per ogni operazione esiste una tabella
Ing. L.Testa - Fondamenti di Informatica
Somma binaria
„
„
La tabella di definizione è:
„ 0 + 0 = 0
„ 0 + 1 = 1
„ 1 + 0 = 1
„ 1 + 1 = 0
con riporto di 1
„ 1 + 1 + 1 = 1
con riporto di 1
Esempi
Ing. L.Testa - Fondamenti di Informatica
Sottrazione binaria
„
„
La tabella di
„ 0 - 0
=
„ 1 - 0
=
„ 1 - 1
=
„ 0 - 1
=
definizione è:
0
1
0
1
con prestito di 1 dal
bit di peso superiore
Esempi
Ing. L.Testa - Fondamenti di Informatica
Moltiplicazione e divisione
„
„
Si utilizzano le stesse procedure:
„ per la moltiplicazione:
somma e scorrimento
„ per la divisione:
differenza e scorrimento
Esempi
Ing. L.Testa - Fondamenti di Informatica
Rappresentazione dei numeri
nei calcolatori
Rappresentazione dei numeri nei calcolatori
„
„
Esiste un limite al numero di bit impiegati per
rappresentare un numero
Tale limite dipende da:
„ intervallo di variabilità
„ occupazione di memoria
Ing. L.Testa - Fondamenti di Informatica
Overflow e Underflow
„
„
Sono condizioni in cui si ha un errore nella
rappresentazione del risultato
Generalmente la rappresentazione è formata da
un numero finito di bit: se si supera tale limite si
ha errore
Ing. L.Testa - Fondamenti di Informatica
Numeri positivi
„
„
„
La rappresentazione di numeri positivi non crea
problemi
Si può avere overflow se il risultato delle
operazioni richiede un numero maggiore di bit di
quanto disponibile
Esempio: somma modulo 16
Ing. L.Testa - Fondamenti di Informatica
Numeri negativi
„
Esistono diverse possibilità di rappresentazione:
„
modulo e segno
„
complemento a 2
n
Ing. L.Testa - Fondamenti di Informatica
Modulo e segno
„
Convenzione per il bit più significativo:
„
„
„
0 : segno positivo
1 : segno negativo
esistono due rappresentazioni per lo ‘0’
+ 5 ---> 00101
- 10 ---> 11010
+ 0 ---> 00000
- 0 ---> 10000
Ing. L.Testa - Fondamenti di Informatica
Complemento a 2
„
„
(complemento alla base)
Dato X in base r di n cifre:
rn – X (complemento alla base del numero X)
Se X=01011, r=2, n=5
25-X = 100000 – 01011 = 10101
„
Regoletta pratica: il complemento a 2 si trova 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 (0Æ1, 1Æ0) tutti gli altri bit
Ing. L.Testa - Fondamenti di Informatica
Complemento a 2
„
complemento a 2:
„
„
„
(complemento alla base)
per definizione il complemento a 2 di X è 2n - X
unica rappresentazione dello ‘0’
I numeri positivi sono rappresentati dal loro modulo e hanno il
bit più significativo (segno) posto a zero. I numeri negativi sono
rappresentati dal complemento a 2 del corrispondente numero
positivo, segno compreso. Pertanto, i numeri negativi hanno il
bit più significativo sempre a 1.
„
Esempio:
+3 <=> 00011
- 3 <=> 11101
Ing. L.Testa - Fondamenti di Informatica
Uso dei numeri negativi
„
„
Modulo e segno:
„ la somma algebrica di numeri positivi e negativi
può generare problemi
„ servono sistemi hardware specifici per la
gestione corretta del formato
Complemento a due:
„ la somma algebrica non genera problemi
Ing. L.Testa - Fondamenti di Informatica
Complemento a 2
„
Motivazione:
„ Sia dato un numero di bit n
„ i numeri che si possono rappresentare sono
n
nel range [0 - 2 -1]
„ si vuole calcolare A-B
n
„ si sostituisce -B con (2 -B)
n
„ si ottiene A+(2 -B)
„ La sottrazione si esegue mediante una somma!
Ing. L.Testa - Fondamenti di Informatica
Numeri negativi:
intervallo valori rappresentabili
Rappresentazione modulo e segno
-2n-1 + 1 ≤ N ≤ 2n-1 - 1
Rappresentazione in complemento a due
-2n-1 ≤ N ≤ 2n-1 - 1
Ing. L.Testa - Fondamenti di Informatica
Rappresentazione numeri reali
„
„
I numeri reali sono nel range [-∞ ÷ +∞]
Talvolta è necessaria una rappresentazione estesa
sulla retta dei reali
„ con 3 simboli
[+/-], X, Y, Z ∈ {0,1,…9} è
possibile rappresentare -999 ÷ +999
„ oppure
9 * 10[+/-] 99
[+/-] 99
„ oppure [+/-] 9 * 10
Ing. L.Testa - Fondamenti di Informatica
Virgola mobile
„
„
E’ la risposta alla necessità di manipolare
numeri di ordini di grandezza diversi
Notazione scientifica - numeri espressi nella forma:
X.YYY * 10WW
„ X: parte intera
„ Y: parte frazionaria
„ W: esponente
Ing. L.Testa - Fondamenti di Informatica
Virgola mobile
„
„
Nomenclatura:
A = M * BE
„ M: mantissa
„ B: base
„ E: esponente
Necessita di un segno per la mantissa e uno per
l’esponente
Ing. L.Testa - Fondamenti di Informatica
Virgola mobile
„
Forma normalizzata:
numero = ± 1.XXXXXXX * 2a
„
„
.XXXXXXX parte frazionaria
a è detto esponente vero
Ing. L.Testa - Fondamenti di Informatica
Virgola mobile
„
Rappresentazione standard (IEEE P754)
„ Segno: 1 bit di segno (0 per i positivi, 1 per i negativi)
„
„
Esponente: l’esponente vero è rappresentato come
numero senza segno su 8 bit usando la
rappresentazione eccesso 127 (il valore che quindi si
rappresenta è a+127; il valore dell’esponente vero
dovrà essere in modulo minore di 127)
Mantissa: vengono rappresentati i primi 23 bit della
parte frazionaria della forma normalizzata (hidden bit :
la parte intera di peso 20 viene sottintesa)
Ing. L.Testa - Fondamenti di Informatica
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)
Segno Esponente
S
E
Mantissa
F
N = (-1)S * 2E-127 * 1.F
Ing. L.Testa - Fondamenti di Informatica
Virgola mobile - precisione
S
(1 bit)
E
(8 bit)
F
(23 bit)
32 bit (singola precisione), M=127
S
(1 bit)
E
(11 bit)
F
(52 bit)
64 bit (doppia precisione), M=1023
S
(1 bit)
E
(15 bit)
F
(112 bit)
128 bit (quadrupla precisione), M=16383
Ing. L.Testa - Fondamenti di Informatica
Virgola mobile
„
Esempi usando: B=10, 2 cifre all’esponente e 8
alla mantissa:
„
+1
0 01 10000000
„
-63517,8
1 05 63517800
„
-0,000635178 1 97 63517800
„
-8,75 * 10-13 1 88 87500000
Fondamenti di Informatica
46
Virgola mobile
„
Moltiplicazione e divisione:
„ si moltiplica o si dividono le mantisse in
modo consueto
„ si sommano o si sottraggono gli esponenti
„ si normalizza
„ Esempio: 10,4 * 200 =
0 02 10400000 * 0 03 20000000 =
0 05 20800000
Ing. L.Testa - Fondamenti di Informatica
Virgola mobile
„
Somma e sottrazione:
„ si uguagliano gli esponenti
„ le mantisse vengono sommate
„ aggiustamento in caso di traboccamento
„ Esempio: 10,4 + 2 =
0 02 10400000 + 0 01 20000000 =
0 02 10400000 + 0 02 02000000 =
0 02 12400000 = 12,4
Ing. L.Testa - Fondamenti di Informatica
Virgola mobile
„
Approssimazioni:
„
34,56 + 0,005 =
0 02 3456 + 0 98 5000 =
0 02 3456 + 0 02 0000 =
0 02 3456 = 34,56
„
La precisione è data dal numero di cifre della
mantissa:
„
Doppia precisione: doppia lunghezza della
mantissa (range invariato, precisione raddoppiata)
Ing. L.Testa - Fondamenti di Informatica
Memorizzazione su calcolatore
e codici
Memorizzazione su calcolatore
„
„
„
L'unità atomica è il bit (BInary DigiT)
L'insieme di 8 bit è detta byte
Altre forme di memorizzazione:
„ Word (16 bit)
„ Double-word (32 bit)
„ Quad-word (64 bit)
Ing. L.Testa - Fondamenti di Informatica
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 memorizzazione
Ing. L.Testa - Fondamenti di Informatica
Tipi di memorizzazione
„
„
„
Modulo: 256 configurazioni,
[0, 255]
Modulo e segno: 256 configurazioni,
[-127, +127]
Complemento a 2: 256 configurazioni,
[-128, +127]
Ing. L.Testa - Fondamenti di Informatica
Intervalli di variabilità
„
Word:
„
Double-word: [0, 232-1]
„
Quad-word:
Ing. L.Testa - Fondamenti di Informatica
[0, 216-1]
[0, 264-1]
Convenzioni
„
Floating point:
„
„
„
mantissa: 23 bit
segno: 1 bit
esponente: 8 bit
Ing. L.Testa - Fondamenti di Informatica
Codici
„
Codice: sistema di simboli che permette la
rappresentazione dell’informazione
0
„
Esempi:
„
Decodifica agevole vs codici compressi
Ing. L.Testa - Fondamenti di Informatica
Definizioni
„
„
„
„
SIMBOLO: entità di cui non si da qui una
definizione formale
STRINGA: sequenza finita di simboli
giustapposti (lunghezza della stringa, stringa
vuota)
ALFABETO: insieme finito di simboli
LINGUAGGIO: insieme di stringhe di simboli
tratti da un alfabeto
Ing. L.Testa - Fondamenti di Informatica
Esempi di alfabeti
„
„
„
Alfabeto italiano:
{A, B, C, D, …Z}
Alfabeto greco:
{α, β, γ, δ, ...ω}
Alfabeto binario:
{0, 1}
Ing. L.Testa - Fondamenti di Informatica
Alfabeto usato dal calcolatore
„
„
„
„
„
„
Interruttore (aperto/chiuso)
Foro su scheda (aperto/chiuso)
Transistor (in conduzione/spento)
Tensione (alta/bassa)
Dominio di magnetizzazione (↑/↓)
Riflettività di un’areola (alta/bassa)
Ing. L.Testa - Fondamenti di Informatica
Alfabeto usato dal calcolatore
„
„
Gli elaboratori utilizzano una logica e un’aritmetica
binaria
Ai due stati di un dispositivo vengono associati i
due simboli 0 e 1
Ing. L.Testa - Fondamenti di Informatica
Codifica dei simboli
„
„
E’ necessario determinare delle regole di
corrispondenza, dette codifiche
La codifica mette in corrispondenza (biunivoca)
ogni simbolo appartenente all’alfabeto più ricco
con una stringa di simboli appartenente
all’alfabeto più ridotto.
Ing. L.Testa - Fondamenti di Informatica
Codifica
„
„
Problema:
codificare i simboli dell’alfabeto A utilizzando
stringhe del linguaggio L, con A qualsiasi e
L={ stringhe di N bit }
Cardinalità C dell’alfabeto A:
numero di elementi di A
Ing. L.Testa - Fondamenti di Informatica
Codifiche ridondanti
„
Se C e’ la cardinalità, si deve avere:
N ≥ log2 C = M
cioè:
se
se
C ≤ 2N
M⎤ =N
M⎤ <N
è senza ridondanza
è con ridondanza
Ing. L.Testa - Fondamenti di Informatica
Distanza di Hamming
„
E’ definita come il minimo numero di bit di cui
differiscono due parole qualsiasi del codice
se N=M
si ha che
se c’è ridondanza,
Ing. L.Testa - Fondamenti di Informatica
H=1
H≥1
Rilevazione e correzione di errori
„
La ridondanza può servire per rilevare o
correggere errori nel codice
„
Num di errori rilevati: R = H-1
„
Num di errori corretti:
H −1
C≤
2
Ing. L.Testa - Fondamenti di Informatica
Esempio di codifica ridondante
„
„
Parità:
si ottiene dal codice non ridondante aggiungendo
un simbolo in modo che il numero di ‘1’ sia pari
(parità pari) o dispari (parità dispari).
Avendo H=2 può solo rilevare un errore
Ing. L.Testa - Fondamenti di Informatica
Codice BCD
„
BCD: Binary Coded Decimal
Simbolo: Codifica:
0
1
2
3
4
8
9
…
0000
0001
0010
0011
0100
1000
1001
Ing. L.Testa - Fondamenti di Informatica
Operazioni sui BCD
„
„
E’ usato spesso quando l’elaborazione è ridotta,
mentre la visualizzazione è frequente
Problema della correzione (+6)
Ing. L.Testa - Fondamenti di Informatica
Codifica dei testi
„
„
Si utilizza una tabella (arbitraria)
Standard oggi (quasi) universalmente riconosciuto
Codice ASCII
American Standard Code for Information Interchange
Ing. L.Testa - Fondamenti di Informatica
Codice ASCII
„
„
Si utilizzano 7 bit
quindi
128 simboli diversi
ASCII esteso (8bit)
„ diverse estensioni in dipendenza dal paese
„ oppure aggiunge la parità
Ing. L.Testa - Fondamenti di Informatica
Codice ASCII
Ing. L.Testa - Fondamenti di Informatica
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)
Ing. L.Testa - Fondamenti di Informatica