La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

46
La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica

Transcript of La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

Page 1: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

La rappresentazione

delle informazioniDr. Francesco Fabozzi

Corso di Informatica

Page 2: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

2

La matematica degli elaboratori• In un elaboratore l’informazione (numero,

testo, immagine, filmato, audio, ecc.) viene rappresentata con dei numeri (cioè con sequenze di cifre)

• Pertanto l’elaborazione dell’informazione si riduce in ultima analisi a compiere delle operazioni su dei dati numerici

• Quante cifre ho a disposizione in un elaboratore?– Solo due cifre! – Il motivo risiede nell’elettronica dell’elaboratore

Page 3: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

3

La matematica degli elaboratori• L’elaboratore è un dispositivo elettronico

– I circuiti elementari che lo compongono hanno solo due possibili stati fisici

• Stato On / Stato Off

– A ogni stato fisico è associata una cifra• On = 1; Off = 0

• Quindi la matematica di un elaboratore utilizza solo 2 cifre (matematica binaria)– I numeri saranno sequenze di 0 e 1– Una cifra binaria si chiama bit (binary digit)

Page 4: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

4

Bit• Il bit (b) può considerarsi l’unità elementare

di informazione

• Quante informazioni posso rappresentare con un bit?– Poiché un bit può assumere solo due valori

posso rappresentare solo due informazioni• Acceso / Spento (1 / 0)• Presente / Assente (1 / 0)• Vero / Falso (1 / 0)• Alto / Basso (1 / 0)

Page 5: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

5

Sequenze di bit• Per rappresentare più informazioni devo

usare sequenze di bit

• Esempio: sequenza di due bit – Con due bit posso scrivere 4 (= 22) sequenze

distinte• 00, 01, 10, 11

– Quindi posso rappresentare al massimo 4 informazioni

– Esempio: i colori di un semaforo• Verde (00), Giallo (01), Rosso (10)

Page 6: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

6

Sequenze di bit• Con 3 bit posso scrivere 8 ( = 23) sequenze

distinte– 000, 001, 010, 011, 100, 101, 110, 111– Quindi con tre bit posso rappresentare al

massimo 8 informazioni

• Regola generale: con n bit posso codificare al massimo 2n informazioni

• Codificare un informazione = associare un’informazione a una sequenza di bit

Page 7: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

7

Byte e Word• Un sequenza di 8 bit viene detta Byte (B)

– Con un Byte posso codificare 256 informazioni– Esempio: tutti i caratteri alfanumerici (numeri,

lettere, segni di interpunzione) sono codificati in un elaboratore utilizzando un Byte

• Si chiama Word una sequenza di bit (tipicamente un multiplo del Byte) su cui un certo elaboratore esegue operazioni elementari– Possiamo avere Word a 8, 16, 32 o 64 bit

Page 8: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

8

Byte e Wordbit

Byte 0 1 1 0 1 1 0 1

0

0 1 0 0 1 0 0 116 bit-Word 1 0 1 0 0 1 0 0

0 0 1 0 1 1 1 0

1 0 1 1 0 0 0 0

0 0 1 0 1 0 0 1

1 0 1 1 1 1 0 0

32 bit-Word

Page 9: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

9

kB, MB, GB, TB• La memoria occupata dalle informazioni si

misura nel numero di Byte necessari per rappresentarle. Ad esempio:– Un file di testo occupa circa un migliaio di Byte– Un file di immagine occupa circa un milione di

Byte

• Dagli esempi risulta che è più comodo usare multipli del Byte– I simboli sono simili a quelli del sistema

metrico decimale (k, M, G, T) ma il significato è leggermente diverso

Page 10: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

10

kB, MB, GB, TB• Dalla tabella

– 1kB = 1 KiloByte = 1024 Byte ~ 103 Byte– 1MB = 1 MegaByte = 1024 kB ~ 106 Byte– 1GB = 1 GigaByte = 1024 MB ~ 109 Byte– 1TB = 1 TeraByte = 1024 GB ~ 1012 Byte

Multiplo Sigla Valore Valore approssimato

Kilo k 210 = 1024 ~103

Mega M 220 = 1024k ~106

Giga G 230 = 1024 M ~109

Tera T 240 = 1024 G ~1012

Page 11: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

11

Oltre il sistema decimale• La matematica che usiamo correntemente è

decimale– Basata su 10 simboli (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)– Ciò nasce dal fatto che la nostra civiltà usa per contare

le 10 dita delle mani

• Ma posso avere anche altri sistemi di numerazione che si differenziano per il numero di simboli usati– Sistema binario, ottale, esadecimale, …

• Le regole di calcolo apprese per il sistema decimale si applicano anche agli altri sistemi

Page 12: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

12

Sistemi numerici• In un sistema di numerazione il numero di cifre

utilizzato si chiama base del sistema– Sistema binario = sistema in base 2– Sistema ottale = sistema in base 8– Sistema esadecimale = sistema in base 16

• La numerazione in un sistema non decimale è uguale a quella nel sistema decimale– I primi numeri sono rappresentati nell’ordine dai

simboli disponibili– Esauriti i simboli disponibili, si aggiunge una seconda

cifra alla sinistra, mentre la prima cifra ritorna su tutti i possibili valori, e così via

Page 13: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

13

NumerazioneDecimale Binario Ottale Esadecimale

0 0 0 0

1 1 1 1

2 10 2 2

3 11 3 3

4 100 4 4

5 101 5 5

6 110 6 6

7 111 7 7

8 1000 10 8

9 1001 11 9

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F

Page 14: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

14

Sistemi posizionali• I sistemi numerici visti sono posizionali

– Il valore assunto da una cifra dipende dalla posizione in cui si trova nel numero

– Infatti questo valore è uguale alla cifra moltiplicata per un fattore (peso) che dipende dalla posizione della cifra stessa nel numero

– peso = ( base )posizione

dove posizione = 0, 1, 2, …

Page 15: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

15

Sistemi posizionali• La posizione si indica con un numero intero che

parte da 0– 0 corrisponde alla posizione della cifra più a destra

• Quindi:– La cifra più a destra è quella con il peso più basso (=1)

• Cifra meno significativa (LSB = Least Significant Bit)

– La cifra più a sinistra è quella con il peso più alto• Cifra più significativa (MSB = Most Significant Bit)

• Il valore totale di un numero è uguale alla somma dei valori associati ad ogni cifra

Page 16: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

16

Sistemi posizionaliEsempio: numero 524 in base 8 e 10

In base 10: 524 = 5 centinaia + 2 decine + 4 unità

102 101 100Pesi in base 10

82 81 80

5 100 + 2 10 + 4 1

Pesi in base 8

In base 8: 5248 = 5 82 + 2 81 + 4 80 = 340

Page 17: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

17

Conversione da base 10 a base n• Metodo delle divisioni successive

• Esempio: convertiamo il numero 3410 a base 2

Divisione Quoziente Resto

34:2 17 0LSB

17:2 8 1

8:2 4 0

4:2 2 0

2:2 1 0

1:2 0 1MSB

3410 = 1000102

Page 18: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

18

Conversione da base 2 a base 8• Si raggruppano le cifre a 3 a 3 a partire da

destra e si convertono nel simbolo ottale– Infatti con tre cifre binarie conto fino a 7– Se necessario si aggiungono zeri a sinistra

• Esempio: convertiamo il numero 11001011112 in ottale

1 | 100 | 101 | 111 001 | 100 | 101 | 111

1 4 5 7

11001011112 = 14578

Page 19: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

19

Conversione da base 2 a base 16• Si raggruppano le cifre a 4 a 4 a partire da

destra e si convertono nel simbolo esadecimale– Infatti con 4 cifre binarie conto fino a 15– Se necessario si aggiungono zeri a sinistra

• Esempio: convertiamo il numero 11001011112 in esadecimale

11 | 0010 | 1111 0011 | 0010 | 1111

3 2 F

11001011112 = 32F16

Page 20: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

20

Conversione da base 8 (16) a base 2• Si invertono le regole precedenti

– Si converte ogni cifra ottale in 3 cifre binarie– Si converte ogni cifra esadecimale in 4 cifre

binarie

• Esempio: convertiamo il numero A73F16 in binario

A | 7 | 3 | F

1010 0111 0011

A73F16 = 10100111001111112

1111

Page 21: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

21

Aritmetica binaria• Stesse regole del calcolo in decimale

• Vediamo la somma binaria

Somma Risultato Riporto

0+0 0 0

0+1 1 0

1+0 1 0

1+1 0 1

Somma di due bit

1 0 1 0 +1 0 1 1 =

Esempio: sommiamoin binario 10 e 11(10 + 11 = 21):

1 0 1 0 1

Page 22: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

22

Numeri binari relativi• Per rappresentare interi con un segno si possono

usare diverse tecniche– Metodo più semplice:aggiungere un bit a sinistra per

rappresentare il segno• 0 = numero positivo, 1 = numero negativo• Quindi se ho a disposizione 8 bit, 7 bit rappresentano il

modulo e un bit rappresenta il segno• Problemi: esiste un doppio 0 e la somma di due numeri relativi

non dà sempre risultato corretto

0 0 0 0 1 0 1 0

1 0 0 0 1 0 1 0

+10

10

Nota:Solo 7 bit usati per il modulo con 8 bit rappresento da -127 a +127

Page 23: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

23

Numeri binari relativi• Altre tecniche

– Complemento alla base• Un numero negativo di modulo N è rappresentato con n cifre

dal numero 2n-N• Esempio: numero -5 con 4 cifre 16-5 = 11 1011• Non esiste doppio 0

– Con 8 bit rappresento da -128 a +127

• Sommo correttamente due numeri relativi

– Eccesso M• Fissato M, il numero relativo N viene rappresentato dal

numero N+M• Esempio: eccesso 8: +5 1101; -5 0011• +5 – 5 = 0000 (corretto, perché mi limito a 4 cifre)

Page 24: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

24

Numeri frazionari• Quando si ha a che fare con numeri

frazionari sorge il problema di rappresentare numeri molto grandi o molto piccoli senza eccedere col numero di bit

• Si usa la notazione in virgola mobile (floating point)– Il numero viene scritto come prodotto di un

numero (mantissa) per la base elevata a una certa potenza

• Esempio1: 325 000 000 000 = 3.25 1011

• Esempio2: 0.000 000 023 = 2.3 10-8

Page 25: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

25

Numeri frazionari• Utilizzando la notazione floating point, poiché la

base è fissata ( = 2) devo solo rappresentare segno, mantissa ed esponente– L’esponente è rappresentato in eccesso M– In base 2 la mantissa è sempre del tipo 1.F

• Quindi basta rappresentare solo F

• Esempio: se l’elaboratore rappresenta i dati con 32 bit– 1 bit per il segno del numero– 8 bit per l’esponente– 23 bit per la mantissa

Page 26: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

26

Precisione della rappresentazione• La precisione della rappresentazione di un

numero è data dal numero di bit usati per rappresentarlo

Campo Singola precisione

Doppia precisione

Quadrupla precisione

Bit totali 32 64 128

S 1 1 1

E 8 11 15

F 23 52 111

E max 255 2047 32767

N = (-1)S ·1.F ·2E+M

Page 27: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

27

Esempio• Rappresentazione di un numero N in

singola precisioneN = -157.6875

N = -10011101.10112 -1.001110110112 ·27

1) Esprimiamo il numero in notazione scientifica

2) Bit di segno S = 1

3) Rappresentazione dell’esponente E in eccesso M = 128

E = 7+128 = 135 = 100001112

4) Rappresentazione della mantissa F

F = 00000000000000111011011

Page 28: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

28

Variabili booleane• Una variabile booleana è una variabile che

può assumere solo due valori– vero / falso (detti “valori di verità” della

variabile)• Una variabile booleana è rappresentabile con un bit• Ad esempio: 1= vero; 0 = falso

Page 29: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

29

Funzioni booleane• Posso anche avere funzioni di variabili

booleane– I valori di verità che una funzione assume in

dipendenza dei possibili valori di verità delle variabili sono espressi mediante tabelle di verità

Page 30: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

30

Funzioni NOT, OR, AND• Semplici funzioni booleane caratterizzate

dalle seguenti tabelle di verità:

A B A+B

0 0 0

1 0 1

0 1 1

1 1 1

Funzione OR ( + )

A B A·B

0 0 0

1 0 0

0 1 0

1 1 1

Funzione AND ( · )

A Ā

0 1

1 0

Funzione NOT ( ¯ )

Page 31: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

31

Codice ASCII• Esiste uno standard internazionale per la

codifica binaria dei caratteri alfanumerici che compaiono in un testo: codice ASCII– Standard determinato dall’ANSI (organismo di

standardizzazione internazionale)

• Un carattere è codificato con 7 bit– Posso rappresentare fino a 128 caratteri

(ASCII standard)– Con un bit aggiuntivo codifico altri 128 caratteri

• Codici ASCII estesi (non standard)

Page 32: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

32

Stringhe• Una stringa è una successione ordinata di

caratteri alfanumerici– Parole, frasi, testi sono delle stringhe

• Esempio: “Oggi è una bella giornata” è una stringa di 26 caratteri

• NOTA: nel calcolo dei caratteri abbiamo considerato anche gli spazi bianchi e un carattere di fine stringa

o g g i è u n a b e l l a g i o r n a t a \0

\0 = carattere di fine stringa

Page 33: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

33

Codifica di stringhe• Una stringa è codificata come una

sequenza di byte– Un byte per ogni carattere alfanumerico

codificato in ASCII

• Ma occorrono anche dei byte aggiuntivi– Indicano la lunghezza della stringa o il

carattere di fine stringa– Vi possono essere dei byte aggiuntivi per

codificare le informazioni di formattazione (font dei caratteri, grandezza dei caratteri, ecc.)

Page 34: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

34

Codifica di vettori• Si dice vettore (array) una sequenza

ordinata di oggetti di uno stesso tipo– E’ la generalizzazione del concetto di stringa– Esempio: i risultati del compito scritto di Fisica

(9 studenti partecipanti) possono essere organizzati in un vettore di 9 numeri:

# studente 1 2 3 4 5 6 7 8 9

voto 22 18 18 28 25 30 12 20 21

• Si può avere anche un vettore di vettori (vettori multidimensionali)

Page 35: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

35

Analogico e digitale• Una quantità analogica è una quantità che

può assumere tutti gli infiniti valori contenuti in un certo intervallo

• Una quantità digitale è una quantità che può assumere solo un numero discreto di valori– Esempi di quantità digitali:

• Un numero intero, un carattere codificato in ASCII, il tempo segnato da un cronometro digitale

Page 36: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

36

Analogico e digitale• Esempio di quantità analogica: la

temperatura di una stanza nell’arco di una giornata varia con continuità in un certo intervallo di temperatura

1517192123252729313335

0 5 10 15 20

Time of day

Te

mp

era

ture

(°C

)

Page 37: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

37

Analogico e digitale• Esempio di quantità analogica: un’onda

sonora

Segnale elettrico (registratocon un microfono) che rappresenta la voce umana

Page 38: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

38

Digitalizzazione dell’informazione• L’informazione in un computer viene

immagazzinata in formato digitale

• Problema: come faccio a fare in modo che un computer possa operare su una quantità analogica (ad esempio il suono)? – Necessità di digitalizzare l’informazione

analogica (conversione analogico-digitale)

Page 39: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

39

Digitalizzazione dell’informazione• Riprendiamo l’esempio della temperatura

nella stanza

1517192123252729313335

0 5 10 15 20

Time of day

Te

mp

era

ture

(°C

)

1517192123252729313335

0 5 10 15 20

Time of day

Te

mp

era

ture

(°C

)

Segnaleanalogico

Segnaledigitale

Procedura di campionamento: ogni ora misuro la temperatura della stanza

campionamentoLe temperature ad ogniora formano un insieme discreto di 24 valori che possono essere codificati con numeri binari e immagazzinati nella memoria del computer

Page 40: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

40

Codifica audio• Campionamento del suono

– Operazione simile all’esempio della temperatura: prelevo un campione di segnale analogico ad intervalli di tempo regolari

• Ovviamente l’operazione va fatta a una frequenza maggiore di quella del segnale da campionare

• L’operazione di campionamento produce una serie di valori numerici in uscita – Questi valori sono memorizzati in file audio (ad

esempio file .mp3)

• Per poter ascoltare il suono a partire dal file occorre un dispositivo che fa l’operazione inversa (convertitore digitale-analogico)

Page 41: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

41

Codifica di immagini• Per digitalizzare un’immagine si divide

l’immagine stessa in una griglia di punti detti pixel (picture element)– Ad ogni pixel viene associata una sequenza di

byte che codificano la posizione del punto nell’immagine e il suo colore

• Se aumenta il numero di pixel o la gamma dei colori che voglio riprodurre deve aumentare il numero di bit necessari per rappresentare queste informazioni

Page 42: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

42

Codifica di immagini• Con 1 bit posso riprodurre solo immagini in

bianco e nero (senza sfumature di grigio)– Quanti colori posso riprodurre con 24 bit?

• Risposta: 224 colori = 16.8 milioni di colori

• Il numero di pixel determina la risoluzione dell’immagine (cioè il livello di dettaglio)– Maggiore è la risoluzione e più è possibile

ingrandire l’immagine senza perdere in qualità– Esempi di risoluzioni tipiche: 800x600,

1024x768

Page 43: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

43

Codifica di immagini

Aumento della risoluzione

Page 44: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

44

Codifica di immagini• Domanda: quanta memoria occupa un’immagine

con risoluzione 1024x768 e che utilizza una profondità di colore di 8 bit?– Risposta: 1024 x 768 x 1 Byte = 768 KB– Questo tipo di immagine si chiama Bit Mapped (mappa

di bit) ed il relativo file ha estensione .bmp

• I file .bmp occupano molta memoria per cui sono stati introdotti dei formati compressi– Formato GIF (file con estensione .gif)– Formato JPEG (file con estensione .jpg)

Page 45: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

45

Controllo dell’errore• Nella trasmissione o memorizzazione di dati sono

necessarie tecniche per il controllo di eventuali errori

• Una semplice tecnica è quella del bit di parità– Ad ogni Byte viene aggiunto un bit tale da rendere pari

il numero complessivo di 1 nel Byte– Se in ricezione o lettura trovo un numero dispari di 1

vuol dire che c’e’ stato un errore– Il metodo funziona solo per errori singoli

• Per individuare l’errore (e correggerlo) è necessario un ulteriore Byte di parità

Page 46: La rappresentazione delle informazioni Dr. Francesco Fabozzi Corso di Informatica.

46

Bit di parità

0 1 1 0 0 0 1 1 0

0 0 0 0 0 0 1 0 1

1 0 1 0 1 1 0 0 0

0 1 1 1 1 0 1 0 1

1 0 1 1 0 1 1 1 0

Bit di parità

Byte di parità

0 1 1 0 0 0 1 1 0

0 0 0 0 0 0 1 0 1

1 0 0 0 1 1 0 0 0

0 1 1 1 1 0 1 0 1

1 0 1 1 0 1 1 1 0

Individuazione dell’errore