29/02/2024
FON DAM E N T I
D I I N FOR M AT I CA
I N GEGN E R I A
M ECCAN I CA
PROF. ROBERTO GENNA
A.A. 2023-2024
LA CO D I F I CA
QUALCHE NOZIONE…
2
29/02/2024
COME RAPPRESENTARE
L’INFORMAZIONE
• Si introduce il concetto di codifica
codifica
INFORMAZIONE RAPPRESENTAZIONE
decodifica
CODIFICA - DECODIFICA
X = insieme degli oggetti da rappresentare
A = alfabeto di simboli
A* = insieme di sequenze costruite su A
cod: X → A* decod: A* → X
L’insieme X, l’alfabeto A, le funzioni cod e decod formano un Codice
4
29/02/2024
CODIFICA
DELL’INFORMAZIONE
Alcuni codici usati quotidianamente:
• la scrittura
• le lingue
• i gesti
• la rappresentazione dei numeri
Utilizzare gli stessi codici permette la COMUNICAZIONE (dell’informazione)
COMUNICARE permette di:
• descrivere oggetti, idee, percezioni, emozioni
• trasmettere conoscenza, esperienza
ESEMPIO DI CODIFICA
DELL’INFORMAZIONE
La scrittura si basa su:
SIMBOLI = { a b c d e f g h … x y z , . + ’ ( ) … }
Esempio: arco
Che cos c’è scritto? Potremmo anche leggerlo:
• ocra
• cane
• ecc.
Esistono regole che creano una corrispondenza fra ogni simbolo e un
suono, che determinano come interpretare gruppi di più simboli ecc.
6
29/02/2024
UN ESEMPIO DI CODICE
DISCRETO VISIVO
CODIFICA: STRINGHE DI
LUNGHEZZA FISSA
• Una sequenza di valori appartenenti a un insieme finito R viene detta
stringa
• Una stringa è caratterizzata dalla sua lunghezza
• L’insieme delle stringhe di elementi di R di lunghezza m è il prodotto
cartesiano:
Rm = R × … × R
m volte
8
29/02/2024
CODIFICA DELLE
INFORMAZIONI
• Rappresentazione di informazioni appartenenti a un insieme finito D
• Funzione iniettiva dall’insieme D (dominio) a un insieme direttamente
m
manipolabile di stringhe R (codominio) detto insieme dei
rappresentanti o codice
cod : D → R
m
R ≥ D
m
• La funzione cod è detta codifica o rappresentazione delle informazioni
appartenenti a D
ESEMPI DI CODIFICA
R (codice) D (informazioni)
Agrigento AG
Alessandria AL
Autostrada Ancona AN
…… …
Strada statale Viterbo VT
Strada provinciale ViboValenzia VV
Ferrovia
262 ≥ 103
Es. 1 Es. 2
Come codice si usa generalmente una stringa di m valori appartenenti a un
insieme R:
R m ≥ D m = logR D
10
29/02/2024
R A P P R E S E N TA Z I O N E
BINARIA
11
PERCHÉ LA
RAPPRESENTAZIONE
BINARIA?
Tecnologicamente è più semplice distinguere uno tra 2 sole
alternative!
I 2 simboli (0 e 1, per convenzione) possono essere
rappresentati da:
• due stati di polarizzazione di una sostanza magnetizzabile
• due stati carica elettrica di una sostanza
• presenza o assenza di una condizione
• maggiore o minore di una prefissata soglia
• …
12
29/02/2024
BINARY DIGIT
• R≡{0,1}
• Può rappresentare qualunque informazione a due valori
(R = 2 )
m
• Una stringa di m bit può assumere 2 valori diversi
Esempio:
♥ 00
♦ 01 D = 4
♣ 10
♠ 11 m=2
13
CODIFICA CON
STRINGHE DI BIT
• Per un qualunque insieme D finito:
cod : D → { 0 , 1 } × … × { 0 , 1 }
m volte
Esempio: Lunedì 000 111
Martedì 001 001 D= 7
Mercoledì 010 110
Giovedì 011 000 log2D = 3
Venerdì 100 101
Sabato 101 100 3
Domenica 110 010
2 =8
questa codifica non usa 111 questa codifica non usa 011
14
29/02/2024
SIGNIFICATO DI UN
CODICE
• Un codice non ha significato di per sé
• Il significato è attribuito dalla codifica (cioè dalla funzione cod)
• L’associazione stringa-codifica è data dall’operatore umano
Ad esempio, la stringa di bit 1000 0101 rappresenta:
– il numero naturale 133 in binario naturale
– il numero relativo -123 in complemento a 2
– il carattere à in codice ASCII esteso
15
CODIFICA CON
SEQUENZE DI BIT
• Con 1 bit si possono distinguere due diverse informazioni (0 o 1)
• Per distinguere più informazioni bisogna usare sequenze di bit
• Le diverse configurazioni di n bit permettono di individuare
n
2 informazioni diverse
• Alcune sequenze di bit assumono nomi particolari
– una sequenza di 8 bit viene chiamata byte (abbr. B maiuscolo)
– una sequenza di 4 bit veniva chiamata nibble
16
29/02/2024
SEQUENZE DI BIT
bit = solo due stati, “0” oppure “1”
nibble = 4 bit, quindi 24 = 16 stati o configurazioni
Byte = 8 bit, quindi 28 = 256 stati o configurazioni
KiloByte [KB] = 210 Byte = 1.024 Byte ~ 103 Byte
MegaByte [MB] = 220 Byte = 210 ∙ 210 B ~ 106 Byte
3
GigaByte [GB] = 230 Byte = (210) B ~ 109 Byte
TeraByte [TB] = 240 Byte ~ 1012 Byte
PetaByte [PB] = 250 Byte ~ 1015 Byte
ExaByte [EB] = 260 Byte ~ 1018 Byte
I calcolatori moderni hanno una parola-macchina pari a 32 o 64 bit
17