L'informazione e la
sua codifica
Corso di Informatica
CdL: Chimica
Claudia d'Amato
[email protected]
Informatica e telecomunicazione

Cos’è l’informatica?
• lo studio sistematico degli algoritmi che descrivono e
trasformano l’informazione: la loro teoria, analisi,
progetto, efficienza, realizzazione e applicazione
[ACM – Association for Computing Machinery]
• la scienza della rappresentazione e dell’elaborazione
dell’informazione

Cos’è la telecomunicazione?
• la trasmissione rapida a distanza dell’informazione

Attenzione:
• Non si parla di tecnologia dei calcolatori !
• Si attribuisce ruolo centrale al concetto di informazione !
Informatica - Claudia d'Amato
2
Informazione e supporto
 L’informazione
è “portata da”, o “trasmessa
su”, o “memorizzata in”, o “contenuta in”
qualcosa; questo “qualcosa” però non è
l’informazione stessa.
 Ogni
supporto ha le sue caratteristiche in
quanto mezzo su cui può essere scritta
dell’informazione.
Informatica - Claudia d'Amato
3
Informazione e supporti /2
La stessa informazione può essere scritta
su supporti differenti.
11
10
9
8
7
6
10
Informatica - Claudia d'Amato
4
Informazione e supporto /4
 Distinguere
informazione e supporto fisico è
distinguere tra “entità logiche” ed “entità
fisiche”:
• l’informazione richiede un supporto fisico,
fisico ma
non coincide con esso;
• l’informazione è un’entità extra‑fisica,
extra‑fisica non
interpretabile in termini di materia‑energia e
sottoposta alle leggi della fisica solo perché basata
su un supporto fisico.
 L’informazione
Informatica - Claudia d'Amato
si può creare e distruggere.
6
Caratteristiche di un sistema fisico per
supportare informazioni
 CODIFICA:
l'operazione formalizzazione e
scrittura dell'infomazione su supporto fisico
 DECODIFICA:
l'operazione di interpretazione
e lettura dell'informazione da supporto fisico
 Condizione
necessaria perché un supporto
possa portare informazione è che possa
assumere configurazioni differenti, a ognuna
delle quali venga associata una differente
entità di informazione.
Informatica - Claudia d'Amato
7
Supporto fisico: 1 condizione
a

Deve consentire di
potere identificare
delle differenze
• Es: voglio rappresentare 2
alternative

Informatica - Claudia d'Amato
Cosa rappresenta
ciascuna
configurazione?
8
Configurazioni e codici

Per interpretare le differenti configurazioni del
supporto è necessario conoscere il codice (cioè la
regola) che a ogni configurazione ammessa associa
un’entità di informazione.

La definizione di un codice comporta che siano
identificati in modo non ambiguo l’insieme delle
possibili configurazioni del supporto e l’insieme
delle possibili entità di informazione a cui ci si
vuole riferire.

Variando il codice è possibile riferirsi a entità di
informazione differenti utilizzando uno stesso
supporto fisico.
Informatica - Claudia d'Amato
9
Supporto fisico: 2a condizione
Deve essere condivisa una regola per
attribuire un significato a ciascuna
configurazione
Configurazione 1
Configurazione 2
CODICE
Entità di
informazione 1
Informatica - Claudia d'Amato
Entità di
informazione 2
10
Definire un codice

Identificare
• { Configurazioni }
• { Entità informazione }

Associare gli elementi
dei 2 insiemi
Informatica - Claudia d'Amato
11
Il telegrafo...

Supporto fisico: conduttore in cui transita corrente
continua

Entità di informazione: “punti” e “linee”, che
rappresentano le lettere dell’alfabeto

Codice = regola che specifica la corrispondenza:
• passa corrente per 1 s ⇒ punto
• passa corrente per 2 s ⇒ linea
• non passa corrente per 1 s ⇒ separazione tra punti e
linee della stessa lettera
• non passa corrente per 2 s ⇒ separazione tra due
lettere
• “passa corrente per 1 s, non passa per 1 s, passa per
2 s” = “punto linea”.
Informatica - Claudia d'Amato
12
...Il telegrafo

Codice Morse = relazione tra lettere e sequenze di
punti linee:
• punto linea ⇒ lettera “A”
• linea punto punto punto ⇒ lettera “B”
• linea punto linea punto ⇒ lettera “C”
• ecc.

Abbiamo associato simboli ad altri simboli!!
Informatica - Claudia d'Amato
13
Messaggi vs configurazione

Configurazione del supporto fisico (livello fisico, LF):
• passa corrente per 2s, non passa per 1s, passa per 1s, non passa per 2s,
passa per 2s, non passa per 1s, passa per 2s, non passa per 1s, passa
per 2s

messaggio, al livello logico 1 (LL1):
• linea punto, separazione di lettera, linea linea linea

messaggio, al livello Logico 2 (LL2):
• “N” “O”

messaggio, al livello Logico 3 (LL3):
• “NO”, con il significato (per esempio) di “incontro non confermato”

Le relazioni tra questi livelli definiscono ognuna un codice
per interpretare il significato delle entità che compaiono al
livello precedente in termini delle entità del livello
successivo: sono relazioni di significazione.
Informatica - Claudia d'Amato
14
Livelli di informazione

Informazione sintattica
• Rappresentazione in simboli dell'informazione

Informazione semantica
• Determinazione del significato della informazione
rappresentata

Informazione pragmatica
• Determinazione del valore da attribuire
all'informazione, considerata la sua
rappresentazione ed il suo significato
Informatica - Claudia d'Amato
15
La codifica dell’informazione
Informatica - Claudia d'Amato
17
Codifica dati e istruzioni

Algoritmo
• descrizione della soluzione di problema scritta in modo
da poter essere eseguita da un esecutore (eventualmente
diverso dall’autore dell’algoritmo)
• sequenza di istruzioni che operano su dati.
dati

Programma
• algoritmo scritto in modo da poter essere eseguito da un
calcolatore (esecutore automatico)

Per scrivere un programma è necessario
rappresentare istruzioni e dati in un formato tale
che l’esecutore automatico sia capace di
memorizzare e manipolare.
Informatica - Claudia d'Amato
18
Rappresentare dati e istruzioni
per il processing di un esecutore
automatico
 Alfabeto dei simboli
• cifre “0”, “1”, …, “9”, separatore decimale (“,”), separatore delle
migliaia (“.”) e segni positivo (“+”) o negativo (“–”).

Regole di composizione (sintassi), che definiscono le
successioni “ben formate”
• “1.234,5” è la rappresentazione di un numero;
• “1,23,45” non lo è.

Codice (semantica)
• “1.234,5” = 1×103 + 2×102 + 3×101 + 4×100 + 5×10–1
• “1,23,45” = ??

Lo stesso alfabeto può essere utilizzato con codici diversi:
• “123,456” = 1×102 + 2×101 + 3×100 + 4×10–1 + 5×10–2 + 6×10–3, [IT]
• “123,456” = 1×105 + 2×104 + 3×103 + 4×102 + 5×101 + 6×100, [UK]
Informatica - Claudia d'Amato
19
Codifica Binaria


Alfabeto binario: usiamo dispositivi con solo due stati
Problema: assegnare un codice univoco a tutti gli oggetti
compresi in un insieme predefinito

Quanti oggetti posso codificare con k bit:
•
•
•
•
•
1 bit ⇒ 2 stati (0, 1) ⇒ 2 oggetti (e.g. Vero/Falso)
2 bit ⇒ 4 stati (00, 01, 10, 11) ⇒ 4 oggetti
3 bit ⇒ 8 stati (000, 001, …, 111) ⇒ 8 oggetti
…
k bit ⇒ 2k stati ⇒ 2k oggetti

Quanti bit mi servono per codificare N oggetti:

Attenzione:
ipotesi implicita che i codici abbiano tutti la stessa lunghezza
• N ≤ 2k ⇒ k ≥ log2N ⇒ k = log2N (intero superiore)
Informatica - Claudia d'Amato
20
Esempio di codifica binaria

Problema:
assegnare un codice binario univoco a tutti i giorni della
settimana

Giorni della settimana: N = 7 ⇒ k ≥ log27 ⇒ k = 3

Con 3 bit possiamo ottenere 8 diverse configurazioni:
• Ne servono 7, quali utilizziamo?
• Quale configurazione associamo a quale giorno?

Attenzione:
ipotesi che i codici abbiano tutti la stessa lunghezza
Informatica - Claudia d'Amato
21
I giorni della settimana in binario /1
Lunedì
Lunedì
Giovedì
Martedì
0
Martedì
Mercoledì
Domenica
Mercoledì
Sabato
Giovedì
Venerdì
Venerdì
1 bit
2 “gruppi”
Informatica - Claudia d'Amato
00
Giovedì
Mercoledì
Domenica
Sabato
Lunedì
Martedì
1
01
10
Sabato
Venerdì
Domenica
11
2 bit
4 “gruppi”
000
001
010
011
100
101
110
111
Lunedì
Martedì
Mercoledì
Giovedì
Venerdì
Sabato
Domenica
3 bit
8 “gruppi”
22
I giorni della settimana in binario /2
Lunedì
Sabato
Giovedì
Martedì
Domenica
Mercoledì
Sabato
Giovedì
0
Martedì
Domenica
Lunedì
Mercoledì
Venerdì
Venerdì
1 bit
2 “gruppi”
Informatica - Claudia d'Amato
1
Giovedì
00
Martedì
Sabato
01
Mercoledì
Domenica
10
Lunedì
Venerdì
2 bit
4 “gruppi”
11
000
001
010
011
100
101
110
111
Giovedì
Sabato
Martedì
Domenica
Mercoledì
Venerdì
Lunedì
3 bit
8 “gruppi”
23
Codifica binaria dei caratteri

Quanti sono gli oggetti compresi nell’insieme?
•
•
•
•
26 lettere maiuscole + 26 minuscole ⇒ 52
10 cifre
Circa 30 segni d’interpunzione
Circa 30 caratteri di controllo (EOF, CR, LF, …)
circa 120 oggetti complessivi ⇒ k = log2120 = 7

Codice ASCII: utilizza 7 bit e quindi può
rappresentare al massimo 27=128 caratteri
• Con 8 bit (= byte) rappresento 256 caratteri (ASCII esteso)
• Si stanno diffondendo codici più estesi (e.g. UNICODE) per
rappresentare anche i caratteri delle lingue orientali
Informatica - Claudia d'Amato
24
ASCII su 7 bit (alcune configurazioni)
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
010
sp
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
011
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
100
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
101
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
110
`
a
b
c
d
e
f
g
h
I
j
k
l
m
n
o
111
p
q
r
s
t
u
v
w
x
Y
z
{
|
}
~
canc
Informatica - Claudia d'Amato
25
bit, Byte, KiloByte, MegaByte, …
bit = solo due stati, “0” oppure “1”.
Byte = 8 bit, quindi 28 = 256 stati
KiloByte [KB]
= 210 Byte = 1024 Byte ~ 103 Byte
MegaByte [MB] = 220 Byte = 1'048'576 Byte ~ 106 Byte
GigaByte [GB] = 230 Byte ~ 109 Byte
TeraByte [TB] = 240 Byte ~ 1012 Byte
PetaByte [PB] = 250 Byte ~ 1015 Byte
ExaByte [EB]
= 260 Byte ~ 1018 Byte
Informatica - Claudia d'Amato
26
La codifica delle istruzioni

Si segue lo schema presentato per i caratteri
alfanumerici:
• quali e quante sono le istruzioni da codificare?
• qual è la lunghezza delle successioni di bit da utilizzare ?
• qual è la corrispondenza tra istruzioni e successioni di bit ?
Istru zioni
aritm etico-logiche
Cod ice Istru zione
0111 1100
AD D
0111 1101
SUB
0111 1110
AN D
……… ………
Informatica - Claudia d'Amato
Istru zioni p er il
trasferim ento d ati
Cod ice Istru zione
1110 1000 LOAD
1111 1000 STORE
……… ………
……… ………
Istru zioni d i
controllo
Cod ice Istru zione
0100 1001 IF_EQ
0100 1000 GOTO
0100 1100 RETURN
……… ………
27
Oltre al codice operativo

… è necessario far riferimento ai dati necessari per
completare l’esecuzione dell’istruzione,
• e.g. addizione: è necessario che sia specificato (anche implicitamente)
dove leggere i due operandi da sommare e dove scrivere il risultato;

il numero dei dati da specificare è variabile, in funzione
delle istruzioni.
Informatica - Claudia d'Amato
28
Numeri naturali
 Sistema
di numerazione posizionale in base b
• ckck–1…c0 rappresenta ck×bk + ck–1×bk–1 + … + c0×b0
• b=10 ⇒ 1101dieci indica 1×103 + 1×102 + 0×10 + 1×100
 Conversione
binario ⇒ decimale
•basta scrivere il numero secondo la notazione posizionale
utilizzando già il sistema decimale
• b=2 ⇒ 1101due indica 1×23 + 1×22 + 0×2 + 1×20 = 13dieci
decimale ⇒ binario
• Metodo delle divisioni successive
 Conversione
Informatica - Claudia d'Amato
29
Conversione binario ⇒ decimale
101100d u e = 1d ieci×2d5 ieci+ 0d ieci×24d ieci+ 1d ieci×23d ieci+ 1d ieci×22d ieci+ 0d ieci×21d ieci+
+ 0d ieci×20d ieci =
= 1d ieci×32d ieci + 0dieci×16d ieci + 1d ieci×8d ieci + 1d ieci×4d ieci+ 0d ieci×2d ieci
+ 0d ieci×1d ieci =
= 32d ieci + 8d ieci + 4d ieci =
= 44d ieci
101110101d u e = 1d ieci×28d ieci+ 0d ieci×27d ieci+ 1d ieci×26d ieci+ 1d ieci×25d ieci+ 1d ieci×24d ieci+
0d ieci×23d ieci+ 1d ieci×22d ieci+ 0d ieci×21d ieci+ 1d ieci×20d ieci =
= 1d ieci×256d ieci+ 0d ieci×128dieci+ 1d ieci×64d ieci+ 1dieci×32d ieci+
1d ieci×16d ieci+ 0d ieci×8d ieci+ 1d ieci×4d ieci+ 0d ieci×2d ieci+ 1d ieci×1d ieci =
= 256d ieci+ 64d ieci+ 32dieci+ 16d ieci+ 4d ieci+ 1d ieci =
= 373d ieci
Informatica - Claudia d'Amato
30
Conversione decimale ⇒ binario






Sistema di numerazione posizionale in base B che, in questo contesto si può
ipotizzare diversa da dieci
cn–1cn–2…c1c0 = cn–1×Bn–1 + cn–2×Bn–2 + … + c1×B1 + c0×B0
cn–1cn–2…c1c0 = cn–1×Bn–1 + cn–2×Bn–2 + … + c1×B + c0
(infatti B1 = B e B0 = 1)
Dividendo il numero per il valore della base, il risultato che si ottiene è:
(cn–1×Bn–1 + cn–2×Bn–2 + … + c1×B + c0)/B =
= cn–1×Bn–2 + cn–2×Bn–3 + … + c1 + c0/B
che può essere scomposto in modo da evidenziare quoziente e resto:
quoziente = cn–1×Bn–2 + cn–2×Bn–3 + … + c1
resto = c0
Il resto della divisione corrisponde all’ultima cifra della rappresentazione in
base B del numero, ma il suo valore è indipendente dalla base che si utilizza
per effettuare i conti.
Applicando lo stesso procedimento al quoziente si ottiene la penultima cifra
della rappresentazione in base B
Ripetendo la procedura è possibile ottenere tutte le altre cifre.
Informatica - Claudia d'Amato
32
Conversione decimale ⇒ binario
573dieci : 2dieci
286dieci : 2dieci
143dieci : 2dieci
71dieci : 2dieci
35dieci : 2dieci
17dieci : 2dieci
8dieci : 2dieci
4dieci : 2dieci
2dieci : 2dieci
1dieci : 2dieci
⇒
⇒
⇒
⇒
⇒
⇒
⇒
⇒
⇒
⇒
quoziente
quoziente
quoziente
quoziente
quoziente
quoziente
quoziente
quoziente
quoziente
quoziente
1 000 111 101due = 573dieci
Informatica - Claudia d'Amato
(cifra binaria meno significativa)
286dieci
143dieci
71dieci
35dieci
17dieci
8dieci
4dieci
2dieci
1dieci
0dieci
resto 1dieci
resto 0dieci
resto 1dieci
resto 1dieci
resto 1dieci
resto 1dieci
resto 0dieci
resto 0dieci
resto 0dieci
resto 1dieci
(cifra binaria più significativa)
33
Conversione decimale ⇒ binario
Si calcolano i resti delle divisioni per due
18 : 2 = 9
9:2=4
4:2=2
2:2=1
1:2=0
resto 0
resto 1
resto 0
resto 0
resto 1
10010
137 : 2 =
68 : 2 =
34 : 2 =
17 : 2 =
8:2=
4:2=
2:2=
1:2=
68
34
17
8
4
2
1
0
resto 1
resto 0
resto 0
resto 1
resto 0
resto 0
resto 0
resto 1
10001001
Informatica - Claudia d'Amato
34
Numeri binari: operazioni



Operazioni di somma di numeri binari naturali.
Con gli 8 bit utilizzati negli esempi qui riportati si possono
rappresentare i numeri naturali fino a 255dieci.
Operazioni che producono un risultato maggiore provocano
il superamento della capacità di rappresentazione (indicato
in gergo dal termine inglese overflow
).
1
1
Informatica - Claudia d'Amato
35
Ottali ed esadecimali


Utili per rappresentare sinteticamente valori binari
Ottali (base b = 8)
• Alfabeto ottale: cifre comprese tra 0 e 7
• 354otto = 3×82 + 5×81 + 4×80 = 192+40+4 = 236dieci
• 1461otto = 1×83 + 4×82 + 6×81 + 1×80 = 512+256+48+1 = 817dieci
• Ogni cifra ottale corrisponde a tre cifre binarie:
• 11101100due = [11] [101] [100] = 354otto
• 1100110001due = [1] [100] [110] [001] = 1461otto

Esadecimali (base b = 16)
• Alfabeto esadecimale: cifre 0 – 9 + lettere A – F
• ECsedici = 14×161 + 12×160 = 224 + 12 = 236dieci
• 331sedic = 3×162 + 3×161 + 1×160 = 768+48+1 = 817dieci
• Ogni cifra esadecimale corrisponde a quattro cifre binarie:
• 11101100due = [1110] [1100] = ECsedici
• 1100110001due = [11] [0011] [0001] = 331sedici
Informatica - Claudia d'Amato
36
Numeri naturali binari nei
calcolatori
 Per
la codifica dei numeri naturali (interi
positivi) si utilizzano abitualmente successioni
di 32 bit (4 byte) con cui si possono
rappresentare i numeri compresi tra
0 e 232–1 = 4'294'967'295 ≈ 4×109.
Informatica - Claudia d'Amato
37
Numeri interi relativi

Alfabeto binario
• anche il segno è rappresentato da 0 o 1
• è indispensabile indicare il numero k di bit utilizzati

Modulo e segno
• 1 bit di segno (0 positivo, 1 negativo)
• k – 1 bit di modulo
• Esempio:
+6dieci = 0110ms
–6dieci = 1110ms
• si rappresentano i valori da –2k–1+1 a 2k–1–1
• con 4 bit i valori vanno da –7 a +7
• con 8 bit i valori vanno da –127 a +127
• Attenzione: ci sono due rappresentazioni dello 0
• con 4 bit sono +0dieci = 0000ms –0dieci = 1000ms
Informatica - Claudia d'Amato
39
Numeri interi in complemento a 2

Alfabeto binario
• anche il segno è rappresentato da 0 o 1
• è indispensabile indicare il numero k di bit utilizzati

Complemento a 2
• X corrisponde al binario naturale di 2k + X
+6dieci ⇒ 24+6 = 22 ⇒
[1]0110 ⇒ 0110C2
–6dieci ⇒ 24– 6 = 10 ⇒
[0]1010 ⇒ 1010C2
• si rappresentano i valori da –2k–1 a 2k–1–1
• con 4 bit i valori vanno da –8 a +7
• con 8 bit i valori vanno da –128 a +127
• Con 32 bit i valori vanno da –2'147'483'648 fino a +2'147'483'647
• Attenzione: c’è una sola rappresentazione dello 0
• con 4 bit è +0dieci = 0000C2
Informatica - Claudia d'Amato
mentre 1000C2 = –8dieci
40
Il complemento a 2

Metodi alternativi per calcolare la
rappresentazione di –X a partire da quella di X
• Effettuare il complemento 1 di ogni bit di X, poi
aggiungere 1
• rappresentazione di +6dieci = 0110C2 (NB ci vogliono 4 bit!!)
• complemento di tutti i bit ⇒ 1001C2 (corrisponderebbe a -7dieci)
• aggiungere 1 ⇒ 1010C2 (che corrisponde a -6dieci)
• Partendo da destra e andando verso sinistra, lasciare
invariati tutti i bit fino al primo 1 compreso,
complementare tutti gli altri bit.
• rappresentazione di +6dieci = 0110C2 (NB ci vogliono 4 bit!!)
• gli ultimi due bit (_ _ 1 0) rimangono invariati
• gli altri due bit vengono complementati (1 0 1 0C2)
Informatica - Claudia d'Amato
41
Complemento a 2: alcune osservazioni


I valori positivi iniziano con 0, quelli negativi con 1
Data la rappresentazione di un numero su k bit, la
rappresentazione dello stesso numero su k+1 bit si
ottiene aggiungendo (a sinistra) un bit uguale al
primo (estensione del “segno”)
• Rappresentazione di –6 su 4 bit = 1010
• Rappresentazione di –6 su 5 bit = 11010
• Rappresentazione di –6 su 8 bit = 11111010

la sottrazione si effettua come somma algebrica
• 4 – 6 = +4 + (–6) = 0100 + 1010 = 1110 = –2
• 9 – 6 = +9 + (–6) = 01001 + 11010 = [1]00011 = +3
Informatica - Claudia d'Amato
43
C2: operazioni


Operazioni di somma di numeri binari in complemento a
due.
Con gli 8 bit utilizzati negli esempi qui riportati si possono
rappresentare i numeri interi da –128dieci fino a +127dieci
Informatica - Claudia d'Amato
44
C2: operazioni
ATTENZIONE
 Se due operandi dello stesso segno danno un
risultato di segno opposto vuol dire che è stata
superata la capacità di calcolo (overflow).
Informatica - Claudia d'Amato
45
Numeri razionali

Cifre più significative: sono le cifre associate ai pesi maggiori

Se i numeri hanno un valore molto grande o piccolo, si considerano solo
le cifre più significative --> rappresentazione in notazione scientifica:
un numero in base B viene rappresentato come: ±0.m×Be,
• numeri > 1: le cifre più significative sono quelle poste più a sinistra
• es.: 723'456 → cifra più significativa: 7, associata al peso 105, seguita da 2,
con peso 104, e così via;
• numeri < 1: le cifre più significative sono le prime diverse da 0 che si
incontrano, a partire dalla virgola, da sinistra verso destra
• es.: 0.0072345 --> cifra più significativa: 7, con peso 10 –3, seguita da 2, con
peso 10–4, e così via.
•
•
•

segno (+ oppure –),
coefficiente m, detto mantissa,
mantissa che è la parte frazionaria compresa tra 0 e 1
esponente e a cui elevare la base della numerazione, che è un intero ( 0)
Esempi:
• -123'450'000'000 diventa –0.12345×1012,
con segno negativo, mantissa 12345, ed esponente 12;
• +0.000012345, corrisponde a 0.12345×10-5,
con segno positivo, mantissa 12345 ed esponente –5.
Informatica - Claudia d'Amato
46
Rappresentazione binaria

Per esempio +101010000 diventa +0.10101×10 01001,
• segno positivo;
• mantissa 10101 (si noti che la mantissa inizia sempre con 1);
• esponente è 01001C2
(si noti come l’esponente sia un numero intero e per questo sia necessario adottare una
rappresentazione che permetta la codifica anche di valori negativi, come, per esempio,
quella in complemento a due).

Standard IEEE-754 (Institute of Electrical and Electronic Engineers):
• precisione doppia: 64 bit
• precisione singola: 32 bit
Informatica - Claudia d'Amato
47
Scarica

L`informazione e la sua codifica