Download - Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Transcript
Page 1: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica dell’Informazione

Page 2: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Problema

• Abbiamo dell’informazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore.

Vincolo• Per motivi tecnologici un calcolatore lavora solo con

due valori 0 e 1 (spento / acceso).

Page 3: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

codifica

codifica

informazione rappresentazione

decodifica

Nel caso dei sistemi di calcolo è stata introdotta larappresentazione digitale• bit (binary digit - cifra binaria): 0 o 1

Per poter rappresentare un numero maggiore diinformazioni si usano sequenze di bit (8 bit=1 Byte)Esempio: 00 01 10 11

Page 4: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica dell’ informazione

Mondo esterno

informazione rappresentazione binaria dei dati

codifica

decodifica

Computer: memorizzazione, Elaborazione dei dati

Page 5: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Il concetto di informazione

Configurazione 1

Configurazione 2

un foglio cosparso

di macchie

Page 6: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Non esiste informazione senza 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– alcuni supporti sono particolarmente adatti alla

trasmissione di informazione, ma non alla sua memorizzazione (aria),

– per altri supporti vale il viceversa (compact disc)

Page 7: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Informazione e supporti (1)La stessa informazione può essere scritta

su supporti differenti.

101010

9

11

8

67

Page 8: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Informazione e supporto (2)

• Distinguere informazione e supporto fisico è distinguere tra “entità logiche” ed “entità fisiche”:– l’informazione richiede un supporto fisico, ma non

coincide con esso;– l’informazione è un’entità non interpretabile in

termini di materia‑energia. Essa è sottoposta alle leggi della fisica solo perché basata su un supporto fisico.

Page 9: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Configurazioni e codici

• Per interpretare le differenti configurazioni del supporto in termini di informazione è necessario conoscere il codice (cioè le regole di conversione) che a ogni configurazione ammessa del supporto 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. Es. codifica di caratteri alfanumerici o codifica di un’immagine su un cd

Page 10: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Esempio: 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:

– transita per 1 s punto– transita per 2 s linea– non transita per 1 s separa punti e linee di una stessa lettera– non transita per 2 s separa due lettere

• “c’è per 1 s, non c’è per 1 s, c’è per 2 s” = “punto linea”.• 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.

Page 11: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica dati e istruzioni

• Per scrivere un programma è necessario rappresentare istruzioni e dati in un formato tale che l’esecutore automatico (computer) sia capace di– memorizzare istruzioni e dati;– manipolare istruzioni e dati.

Page 12: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Rappresentazione binaria

• L’entità minima di informazione che possiamo trovare all’interno di un elaboratore prende il nome di bit– Binary digit – cifra binaria– Un bit può assumere due valori (0 e 1)

Page 13: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

bit, Byte, KiloByte, MegaByte, …

bit = solo due stati, 0 oppure 1.

Byte = 8 bit, quindi 28 = 256 stati o combinazioni di 8 bit

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

Page 14: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Perché la rappresentazione binaria?

• I due simboli (0 e 1) possono essere rappresentate da:– Due stati di polarizzazione di

una sostanza magnetizzabile– Due stati di carica elettrica di

una sostanza– passaggio/non passaggio di

corrente attraverso un cavo conduttore o un circuito integrato

– passaggio/non passaggio di luce attraverso un cavo in fibra ottica

Page 15: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica dell’informazione

• Per poter rappresentare un numero maggiore di informazione si usano sequenze di bit

• Per esempio, per rappresentare quattro informazioni diverse possiamo utilizzare due bit che ci permettono di ottenere quattro configurazione distinte

00 01 10 11

Il processo secondo cui si fa corrispondere ad un’informazione una sequenze di bit prende il nome codifica dell’informazione

Page 16: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica binaria

• Esempio: un esame può avere quattro possibili esiti: ottimo, discreto, sufficiente, insufficiente

• Codifico (due bit):– ottimo con 00– discreto con 01– sufficiente con 10– insufficiente con 11

Page 17: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica binaria

• Esempio: otto colori: nero, rosso, blu, giallo, verde, viola, grigio, arancione

• Codifico (tre bit):– nero con 000– rosso con 001– blu con 010– giallo con 011– verde con 100– viola con 101– grigio con 110– arancione con 111

Page 18: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

• Il processo secondo cui si fa corrispondere ad

una informazione una configurazione di bit

• Con 2 bit si codificano 4 informazioni (22)

• Con 3 bit si codificano 8 informazioni (23)

• ………

• Con N bit si codificano 2N informazioni

Codifica binaria

Page 19: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica dell’informazione

• Problema inverso: quanti bit ci vogliono per

rappresentare M informazioni diverse?

2N >= M

• Esempio: dovendo rappresentare 1.000 informazioni diverse

Quanti bit dobbiamo avere a disposizione ?

Page 20: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

La rappresentazione interna delle

informazioni Codifica dell'Informazione

L'architettura di un calcolatore impone delle regole di conversione tra le rappresentazioni "umane" delle informazioni e quella binaria.

Le informazioni che l'uomo gestisce sono essenzialmente di due tipi: numeriche alfanumeriche.

 

Page 21: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

ALFANUMERICA NUMERICA

Non soggetta a calcoli Soggetta a calcoli

Codifica tabellare Sistemi di numerazione

ASCII, Unicode BINARIO, Esadecimale, Ottale

INFORMAZIONE

Page 22: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica Numerica Un sistema numerico è determinato da:

Un insieme limitato di simboli (cifre) Le regole che devono essere applicate per costruire i numeri

Non Posizionali: il valore delle cifre è indipendente dalla loro posizione (es. IV nella numerazione romana vale 4 non 15);

Posizionali: ad ogni posizione della cifra all'interno della rappresentazione è associato un peso.

Di particolare importanza sono i sistemi numerici di tipo posizionale e per questo motivo saranno gli unici che considereremo.

Page 23: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica Numerica di Tipo Posizionale Nei sistemi numerici posizionali il numero (non negativo) è

rappresentato da una sequenza di n cifre:Per esempio nel sistema numerico decimale, le cifre sono 10:

0,1,2….9 Ogni cifra ha un valore (peso) diverso a seconda della posizione Ad esempio nel sistema numerico decimale, la cifra di

posizione 3 pesa 103

Il valore numerico si ottiene sommando i prodotti delle cifre per il rispettivo peso.

Ad esempio nel sistema decimale:

  61.974 = 6 x104 + 1x 103 + 9 x102 + 7x 101 + 4x 100

Page 24: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

 

I numeri da rappresentare utilizzati nei calcolatori sono:

numeri interi positivi e relativi (con segno)

numeri reali (floating point)

Codifica Numerica di Tipo Posizionale

Page 25: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Esempio: si converta in binario il numero intero positivo 8

Codifica Numeri Interi Positivi

Il numero binario è: 1 0 0 0

MSB LSB

4 0 bit meno significativo (LSB)

2 0

1 0

0 1 bit più significativo (MSB)

Page 26: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Esempio: si converta in binario il numero intero positivo 35541

Il numero binario è: 1000101011010101

Codifica Numeri Interi Positivi

35541:2  

17770 18885 04442 12221 01110 1555 0277 1138 169 034 117 08 14 02:2 01:2 00 1

Page 27: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

 

Esempio: si voglia convertire in decimale il numero binario: 1000101011010101

1*215+0*214+0*213+0*212+1*211+0*210+1*29+0*28+1*27+1*26+0*25+1*24+0*23+1*22+0*21+1*20=32768+2048+512+128+64+16+4+1=35.541

Codifica Numeri Interi Positivi

Page 28: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Molto spesso per risparmiare spazio, invece della notazione binaria viene usata quella esadecimale (ossia su base 16).

Codifica in base 16

Decimale Binario Esadecimale

0 0000 0

1 0001 1

2 0010 2

3 0011 3

4 0100 4

5 0101 5

6 0110 6

7 0111 7

8 1000 8

9 1001 9

10 1010 A

11 1011 B

12 1100 C

13 1101 D

14 1110 E

15 1111 F

La conversione da binario a esadecimale è immediata: occorre semplicemente dividere il numero binario (formato sempre da multipli interi di 8 bit) in gruppi di 4 bit, partendo dal bit meno significativo.

Ad ogni gruppo viene sostituita la corrispondente cifra esadecimale, ricavabile dalla tabella a fianco

Page 29: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

 Esempio: si rappresenti il numero binario 10001010110101012 in esadecimale.Il precedente numero viene decomposto nei seguenti gruppi da 4 bit, partendo dal bit meno significativo: 0101, che corrisponde nella tabella a 51101, che corrisponde nella tabella a D1010, che corrisponde nella tabella a A1000, che corrisponde nella tabella a 8Dunque il numero in esadecimale e' 8AD516.

1000 1010 1101 0101La conversione esadecimale binario avviene in modo analogo eseguendo la conversione in gruppi di 4 bit alla volta.

Codifica in base 16

Page 30: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Conversione Decimale Esadecimale

Esempio: si rappresenti il numero 345 in esadecimale

345:16 Resto 9

21:16 Resto 5

1:16 Resto 1

Risultato: 34510 15916

Page 31: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.
Page 32: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.
Page 33: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

 

Codifica AlfanumericaL’insieme dei caratteri alfanumerici: lettere dell'alfabeto e dalle dieci

cifre decimali. A questi vanno aggiunti diversi altri simboli come lo spazio, i segni di interpunzione, i simboli per indicare il passaggio alla riga o alla pagina successiva, ecc.

Questo insieme di caratteri alfanumerici può essere facilmente rappresentato attribuendo in maniera univoca a ciascuno dei suoi elementi un numero intero (codice).

Osserviamo che il numero delle lettere dell'alfabeto inglese sono 26, per un totale di 52, considerando anche quelle maiuscole. Aggiungiamo le dieci cifre numeriche, una quarantina di simboli extra, arriviamo ad un totale di un centinaio di simboli da rappresentare.

Tale numero suggerisce che soli 7 bit sono sufficienti per rappresentare l'insieme dei caratteri alfanumerici

E' necessario che la rappresentazione dei simboli sia la stessa in tutto il mondo, pena la totale incomunicabilità. E', dunque, necessario l'adozione di una comune rappresentazione.

Page 34: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica AlfanumericaCodifica ASCII

La codifica ASCII, prende il nome da American Standard Code for Information Interchange.

Tale codifica si basa sull'utilizzo di 7 bit per un totale di 128 simboli rappresentabili.

Da notare che i caratteri dell'alfabeto e le cifre numeriche successive hanno codice anch'esso successivo (ad esempio a ha codice 97, b codice 98, c codice 99, il numero 0 ha codice 48, il numero 1 codice 49, etc.)

Esempio: tra le più utilizzate codifiche ASCII (entro i primi 128 simboli) vi sono:

  ~ (tilde) codice 126 { codice 123 } codice 125

 

Page 35: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.
Page 36: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

La codifica binaria di un testo avviene dunque seguendo lo schema seguente:

Page 37: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifiche Alfanumeriche derivate dalla Codifica ASCII

Esistono numerose estensioni della codifica ASCII. Tutte le estensioni della codifica ASCII non modificano tale codifica ma

aggiungono altri 128 simboli (Ascii esteso con 256 simboli).

La codifica Unicode supera i limiti della codifica ASCII e relativi derivati, in quanto estende il numero di simboli codificabili.

Originariamente si basava su una codifica a 16 bit che dava la possibilità di codificare 216 cioè 65.536 caratteri e questo bastava per i caratteri impiegati nelle principali lingue del mondo

Attualmente sono più di un milione di simboli codificati con lo standard Unicode. Essi sono divisi in:

Script Moderni: Latino, Greco, Giapponese, Cinese, Koreano, etc.Script Antichi: Sumero, Egiziano, etc.Segni Speciali

La codifica Unicode è in ogni caso compatibile con la codifica ASCII.

 

Page 38: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

La rappresentazione delle informazioni ALFANUMERICHE

La rappresentazione delle informazioni ALFANUMERICHECodifica tabellare: ad ogni carattere (lettera, cifra, segno speciale) corrisponde una particolare sequenza di bit e viceversa.

Codice ASCII: è la codifica tabellare standard in ambiente P.C. È un codice a 8 bit, cioè utilizza una sequenza di 8 bit (1 byte) per rappresentare un carattere.

Caratteri (Simboli) rappresentabili: corrisponde al numero di combinazioni (sequenze) di bit ottenibili. Per il codice ASCII sono 28= 256, pari ai numeri binari ottenibili con 8 bit (da 00000000 a 11111111).

Page 39: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

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

Page 40: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

GlossarioGlossario1. Base di un s.d.n. = n° di cifre utilizzabili e valore

le cui potenze successive determinano il valore posizionale della cifra

2. Cifra = simbolo grafico usato da solo o in sequenza per la rappresentazione dei numeri

3. Sistema di Numerazione = insieme di regole e simboli per la rappresentazione e l’uso dei numeri

4. Sistema di Numerazione Binario = S.d.n. posizionale in base 2 ( cifre 0 1 )

Page 41: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

GlossarioGlossario

5. Sistema di Numerazione Decimale = S.d.n. posizionale in base 10 ( cifre 0 1 2 3 4 5 6 7 8 9)

6. Sistema di Numerazione Esadecimale = S.d.n. posizionale in base 16 ( cifre 0 1 2 3 4 5 6 7 8 9 A B C D E F )

7. Sistema di Numerazione Posizionale = S.d.n. in cui il valore della cifra (peso) dipende dalla posizione occupata nel numero

Page 42: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Fine

Page 43: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica Numeri Interi Relativi (con segno)

I numeri interi relativi vengono rappresentati in modo analogo a quanto fatto per i numeri interi positivi, riservando un bit (MSB) per rappresentare il segno

(0 se positivo e 1 se negativo).

Per la rappresentazione dei numeri negativi viene utilizzato un tipo di codifica detto del complemento a due.

Page 44: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica Numeri Interi Relativicon Complemento a 2

Cosa è il complemento a 2 di un numero binario ?

Dato un numero binario di N bit, il complemento a 2 di tale numero si ottiene tramite il seguente algoritmo: Si lasciano inalterati tutti i bit fino al primo 1 tutti i bit successivi al primo 1, vengono invertiti (0 diviene

1, e viceversa)

Esempio: si determini il complemento a 2 del numero 01100. Tutti i bit 0 a partire dal bit meno significativo sono lasciati

inalterati e così anche il primo bit 1. Tutti gli altri bit vengono invertiti, ottenendo: 10100.

Page 45: Codifica dellInformazione. Problema Abbiamo dellinformazione (testi, numeri, immagini, ecc.) che vogliamo rappresentare in un calcolatore. Vincolo Per.

Codifica Numeri Interi Relativicon Complemento a 2

Esempio: si voglia convertire il numero 105 con 8 bitEssendo il numero positivo: Segno 0 Codifica di 105 su 7 bits: 1101001 Codifica: 01101001 Esempio: si voglia convertire il numero -105 con 8 bit Essendo il numero negativo, si considera il numero

binario corrispondente al valore assoluto (105) su 8 bit, ossia di 01101001 e poi si costruisce il

il complemento a 2 quindi -105 10010111