La Rappresentazione dell’Informazione

47
1 La Rappresentazione dell’Informazione Prof.Ing.S.Cavalieri

description

La Rappresentazione dell’Informazione. Prof.Ing.S.Cavalieri. Codifica dell’Informazione. Un sistema numerico è determinato da: Un insieme finito di cifre (simboli) Un insieme finito di regole: - PowerPoint PPT Presentation

Transcript of La Rappresentazione dell’Informazione

Page 1: La Rappresentazione dell’Informazione

1

La Rappresentazione dell’Informazione

Prof.Ing.S.Cavalieri

Page 2: La Rappresentazione dell’Informazione

2

Un sistema numerico è determinato da:Un insieme finito di cifre (simboli)Un insieme finito di regole:

Non posizionali: il valore di ciascuna cifra nella rappresentazione è indipendente dalla sua posizione (es.M, C nei numeri romani)Posizionali: ad ogni posizione della cifra all’interno della rappresentazione è associato un peso

Verranno considerati solo i sistemi di codifica posizionali

Codifica dell’Informazione

Page 3: La Rappresentazione dell’Informazione

3

Il numero è rappresentato da una sequenza di N cifre:

Ogni cifra ha un peso diverso a seconda della posizione (i) che occupaDetta b la base della rappresentazione, il peso è dato da bi

Il valore numerico si ottiene sommando i prodotti delle N cifre per il rispettivo peso. Ad esempio nel sistema decimale (base b=10)

Codifica di tipo Posizionale

01321 ddddd NNN

01234567 104107109101106100100101974.061.10 xxxxxxxx

Page 4: La Rappresentazione dell’Informazione

4

Qualunque rappresentazione utilizzata in un calcolatore è basata sull’utilizzo di N byte

Le principali modalità di rappresentazione utilizzate nei calcolatori sono:Numeri interi senza segno (Naturali) e RelativiNumeri razionaliCaratteri

Codifica nei Calcolatori

Page 5: La Rappresentazione dell’Informazione

5

I numeri interi senza segno, ossia i numeri Naturali incluso lo 0, vengono rappresentati attraverso la loro conversione in binario su N bits (N multiplo di 8)

L’algoritmo di conversione è:Si divide il numero da convertire per 2Si riporta il risultato della divisione ed il resto della divisioneSi ripete il procedimento fino a quando il risultato diviene 0Il numero binario è costituito da tutti i resti presi da quello

ottenuto per ultimo a quello ottenuto per primo

Codifica Numeri Naturali

Page 6: La Rappresentazione dell’Informazione

6

Esempio: si converta in binario il numero 8

Codifica Numeri Naturali

Il numero binario è: 1 0 0 0

8:2= 4 resto 0

4:2= 2 resto 0

2:2= 1 resto 0

1:2= 0 resto 1

Bit meno significativo (LSB)

Bit più significativo (MSB)

LSB

MSB

Page 7: La Rappresentazione dell’Informazione

7

Esempio: si converta in binario il numero 71

Codifica Numeri Naturali

Il numero binario è: 1 0 0 0 1 1 1

71:2= 35 resto 1

35:2= 17 resto 1

17:2= 8 resto 1

8:2= 4 resto 0

4:2= 2 resto 0

2:2 = 1 resto 0

1:2 = 0 resto 1

Bit meno significativo (LSB)

Bit più significativo (MSB)

Page 8: La Rappresentazione dell’Informazione

8

La conversione da binario ad intero, si effettua partendo dal bit meno significativo a quello più significativo, moltiplicando ogni bit per la 2 elevato alla posizione del bit:

Codifica Numeri Naturali

00

11

33

22

11 22.....222 xdxdxdxdxd N

NN

NN

N

0101011000101011Esempio (N=16):

Il numero intero è:

541.352121212121212121 0246791115 xxxxxxxx

Page 9: La Rappresentazione dell’Informazione

9

Il più piccolo numero codificabile è:

Codifica Numeri Naturali

02020.....202020 01321 xxxxx NNN

Il più grande numero codificabile è:

01321 2121.....212121 xxxxx NNN

Se N=8, 0-255 ossia da 0 a (2N-1)Se N=16, 0-65535 ossia da 0 a (2N-1)Se N=32, 0-4.294.967.295 ossia da 0 a (2N-1)

Page 10: La Rappresentazione dell’Informazione

10

La codifica esadecimale viene a volte usata al posto della binaria per ridurre spazio

Il numero binario viene suddiviso in blocchi di 4 bits a partire dal meno significativo

Ad ogni gruppo viene sostituito il simbolo esadecimale corrispondete

Codifica in base 16Decimale 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

Page 11: La Rappresentazione dell’Informazione

11

Ad esempio: 1000 1010 1101 01010101->51101->D1010->A1000->8

Diventa: 8AD5

Codifica in base 16

Page 12: La Rappresentazione dell’Informazione

12

I numeri interi relativi possono essere rappresentati in due modi:Modulo e segnoComplemento a 2

Quella più utilizzata è il complemento a 2

Codifica Numeri Interi Relativi

Page 13: La Rappresentazione dell’Informazione

13

I numeri interi relativi sono rappresentati in modo analogo a quanto fatto per i numeri senza segno, riservando 1 bit per rappresentare il segno

Si sceglie il bit più significativo per il segnoSe il bit vale 1 allora il segno rappresentato è il –Se il bit vale 0 allora il segno è il +

Il numero di bit utili per rappresentare il valore assoluto del numero intero relativo è: N-1

Codifica Numeri Interi RelativiModulo e Segno

Page 14: La Rappresentazione dell’Informazione

14

 

Esempio: si voglia convertire il numero -5 con 8 bitIl primo bit (quello più significativo) viene posto a 1 perchè

il numero è negativogli altri 7 bit si calcolano con il metodo visto prima

applicato al numero 5, ottenendo 0000101. Dunque il numero binario che rappresenta -5 è: 10000101

Codifica Numeri Interi RelativiModulo e Segno

Page 15: La Rappresentazione dell’Informazione

15

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 procede dal bit meno significativo verso quello più

significativo se si incontrano tutti bit 0, essi vengono lasciati inalterati se si incontra il primo bit 1 anche esso viene lasciato

inalterato tutti i bit successivi al primo bit 1, vengono invertiti (0

diviene 1, e viceversa)

Codifica Numeri Interi RelativiComplemento a 2

Page 16: La Rappresentazione dell’Informazione

16

Esempio: si determini il complemento a 2 del numero 10100.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: 01100.

Esempio: si determini il complemento a 2 del numero 01101001.In questo caso non esistono bit 0 a partire dal bit meno

significativo.Sono il primo bit 1 viene lasciato inalterato. Gli altri vengono invertiti, ottenendo: 10010111.

Codifica Numeri Interi RelativiComplemento a 2

Page 17: La Rappresentazione dell’Informazione

17

La rappresentazione in complemento a 2 di un numero intero relativo su N bit, si effettua nella seguente maniera:

i numeri interi positivi (incluso lo zero) sono rappresentati in modulo e segno utilizzando gli N bit:1 bit di segno (il MSB, pari a 0) e N-1 bit per la codifica

i numeri interi negativi sono rappresentati realizzando il complemento a 2 della codifica binaria su N bit del valore assoluto

Codifica Numeri Interi RelativiComplemento a 2

Page 18: La Rappresentazione dell’Informazione

18

 

Esempio: si voglia convertire il numero 1 con 8 bitEssendo il numero positivo:•Segno 0•Codifica binaria su 7 bit di 1: 0000001•Codifica: 00000001 Esempio: si voglia convertire il numero -1 con 8 bitEssendo il numero negativo:•Codifica binaria del valore assoluto (1) su 8 bits 00000001•complemento a 2 è 11111111.

Codifica Numeri Interi RelativiComplemento a 2

Page 19: La Rappresentazione dell’Informazione

19

Codifica Numeri Interi RelativiComplemento a 2

Esempio Codifica in Complemento a 2 su 4 bitBase 10 Codifica su 4 bit del valore

assolutoCodifica su 3 bit del valore Base 2

-8 1000 - 1000

-7 0111 - 1001

-6 0110 - 1010

-5 0101 - 1011

-4 0100 - 1100

-3 0011 - 1101

-2 0010 - 1110

-1 0001 - 1111

0 - 000 0000

1 - 001 0001

2 - 010 0010

3 - 011 0011

4 - 100 0100

5 - 101 0101

6 - 110 0110

7 - 111 0111

Page 20: La Rappresentazione dell’Informazione

20

Dato un numero in complemento a 2, la sua conversione in decimale deve avvenire tramite la formula:

Da questa formula si vede che il numero più piccolo che può essere rappresentato con N bit è:

mentre il numero più grande è:

00

11

3N3N

2N2N

1N1N 2d2d....2d2d2d

1N2

1222....22 1N013N2N

Codifica Numeri Interi RelativiComplemento a 2

Page 21: La Rappresentazione dell’Informazione

21

Dunque se dispongo di N bit, è possibile rappresentare numeri interi relativi il cui intervallo sarà:

-(2N-1)…….+(2N-1-1)

Se N=8 ---> -128,….,0,….,+127.Se N=16 ---> -32.768,….,0,….,+32.767.Se N=32 ---> -2.147.483.648,….,0,….,+2.147.483.647.

Codifica Numeri Interi RelativiComplemento a 2

Page 22: La Rappresentazione dell’Informazione

22

Esempio: si voglia convertire il numero binario in complemento a 2 00000001

Applicando la formula precedente , si ottiene che il numero decimale è 1. Esempio: si voglia convertire il numero binario in complemento a 2 11111111Applicando la formula

si ottiene che il numero decimale è dato dalla somma:-1*27+1*26+1*25+1*24+1*23+1*22+1*21+1*20=-128+64+32+16+8+4+2+1 =-128+127=-1

00

11

55

66

77 2d2d....2d2d2d

00

11

55

66

77 2d2d....2d2d2d

Codifica Numeri Interi RelativiComplemento a 2

Page 23: La Rappresentazione dell’Informazione

23

Perchè la Rappresentazione in Complemento a 2 è più Conveniente ?

Il motivo più rilevante è relativo ai vantaggi ottenibili nell'esecuzione di operazioni elementari come la somma e la sottrazione.

Queste due operazioni sono quelle che vengono più frequentemente realizzate in un computer, e, dunque, un risparmio nel tempo necessario alla loro esecuzione comporta un indiscusso aumento delle prestazioni di un computer.

La codifica in complemento a 2 permette un notevole risparmio di tempo nell'esecuzione di somme e sottrazioni

Confronto tra le Codifiche Numeri Interi Relativi

Page 24: La Rappresentazione dell’Informazione

24

Dati due numeri binari in rappresentazione modulo e segno, le operazioni di somma o di sottrazione dipendono dai segni

Se i segni sono gli stessi: Si considerano tutti i bit meno quello del segno Si sommano tali sequenze Il numero binario risultante sarà ottenuto aggiungendo il bit di

segno ai bit ottenuti dalla somma. Se i segni dei due numeri sono diversi:

Si considerano tutti i bit meno quello del segno Si sottrae il numero più piccolo in valore assoluto dal numero più

grande Il numero binario risultante sarà ottenuto aggiungendo ai bit

ottenuti dalla sottrazione il bit di segno del numero in valore assoluto più grande.

 

Somme e Sottrazioni in Modulo e Segno

Page 25: La Rappresentazione dell’Informazione

25

AddizioneLe regole per realizzare l'addizione tra numeri binari: 0+0=0 0+1=1 1+0=1 1+1=0 con riporto di 1Esempio: si vogliano sommare i numeri 0001 (1) e 1010(10).

0001+1010=_______1011 (11)

Esempio: si vogliano sommare i numeri 0011 (3) e 1010(10).0011+1010=_______1101 (13)

Page 26: La Rappresentazione dell’Informazione

26

Somme e Sottrazioni in Complemento a 2

Dati due numeri binari in complemento a due, si applicano le regole dell'addizione a tutti i bit compreso il bit di segno.

 

Esempio: Si sommino i numeri a 4 bit 0010 (+2) e 1010 (-6).

0010+1010=______1100 (-4)

Il numero binario risultante è già il risultato con il segno giusto.

Page 27: La Rappresentazione dell’Informazione

27

Somme e Sottrazioni in Complemento a 2

Esempio: Si sommino i numeri in complemento a 2 001100 (+12) e 100000 (-32).

001100+100000=_______101100 (-20)

 Il numero binario risultante è già il risultato con il segno giusto.

Page 28: La Rappresentazione dell’Informazione

28

Perchè la Rappresentazione in Complemento a 2 è più Conveniente ?

Da quanto detto è evidente la semplificazione nel calcolo della somma e della sottrazione dei numeri rappresentati in complemento a due.

Confronto tra le Codifiche Numeri Interi Relativi

Page 29: La Rappresentazione dell’Informazione

29

Si supponga di lavorare con codifica complemento a 2 su 4 bit (-8,…,+7) si consideri la seguente operazione di somma in complemento a due:

1001 (-7) e 1111 (-1). La somma è -8 che è il limite inferiore codificabile con 4 bitEseguendo la somma, il calcolatore ottiene:

1001+1111=

_________ 1 1000

Si ha overflow: l'1 a sinistra, ottenuto come resto, viene perso per superamento della capacità dei registri. Il numero 1000 in complemento a 2 significa –8, che rappresenta il risultato corretto.

Riconoscimento Automatico di un Risultato Corretto

Page 30: La Rappresentazione dell’Informazione

30

Si supponga di lavorare sempre con codifica complemento a 2 su 4 bit (-8,…,+7) Si consideri la seguente operazione di somma in complemento a due: 1001 (-7) e 1110 (-2). E’ chiaro che la somma è -9, non codificabile con 4 bit. Eseguendo la somma, il calcolatore ottiene:

1001+1110=

________ 1 0111Si ha overflow: l'1 a sinistra, ottenuto come resto, viene perso per superamento della capacità dei registri.Il numero 0111 in complemento a 2 significa +7, che rappresenta un risultato errato.

Riconoscimento Automatico di un Risultato Corretto

Page 31: La Rappresentazione dell’Informazione

31

Si supponga adesso di lavorare ad 8 bit (-128,….,+127) Si consideri la seguente operazione di somma in complemento a due: 01111110 (126) e 00000011 (3). E’ chiaro che la somma è 129 superiore al numero massimo positivo

codificabile con 8 bit, tramite la codifica in complemento a due. Eseguendo la somma, il calcolatore ottiene:

01111110 +00000011 =

____________ 10000001

Non si ha overflow Il numero 10000001 in complemento a 2 significa -127, che rappresenta

palesemente un risultato errato.

Riconoscimento Automatico di un Risultato Corretto

Page 32: La Rappresentazione dell’Informazione

32

 

Il calcolatore deve capire se il risultato che è stato ottenuto sia valido o meno.

Per segnalare un risultato non valido esiste il flag: Overflow Flag (OF)=1 se il risultato non è valido

In base al suo valore, la CPU capisce che è successo

Riconoscimento Automatico di un Risultato Corretto

Page 33: La Rappresentazione dell’Informazione

33

Siano X e Y i due numeri in complemento a due da sommare

Sia S il risultato ottenuto

Alla fine dell’operazione di somma, OF=1, ossia il risultato S non è valido, se i bit più significativi di X e Y sono uguali e il bit più significativo di S è diverso da essi.

 

Riconoscimento Automatico di un Risultato Corretto

Page 34: La Rappresentazione dell’Informazione

34

Esempio: Siano dati i numeri a 4 bit 0010 (+2) e 1010 (-6).

0010+ 1010= _______ 1100 (-4)

  OF=0, ossia il risultato S è valido, perché i bit

più significativi di X e Y sono diversi.

Riconoscimento Automatico di un Risultato Corretto

Page 35: La Rappresentazione dell’Informazione

35

Esempio: Siano dati i numeri a 8 bit 01111110 (+126) e 00000011 (+3)

01111110+00000011=

___________10000001  

OF=1, ossia il risultato S NON è valido, perché i bit più significativi di X e Y sono uguali e il bit più significativo di S NON è uguale a loro.

Riconoscimento Automatico di un Risultato Corretto

Page 36: La Rappresentazione dell’Informazione

36

Esempio: si consideri la seguente operazione di somma in complemento a due:

1001 (-7) e 1111 (-1). Eseguendo la somma, il calcolatore ottiene:

1001+ 1111=

_________ 1 1000 (-8)OF=0, ossia il risultato S è valido, perché i bit

più significativi di X e Y sono uguali e il risultato ha il bit più significativo uguale ad essi.

Riconoscimento Automatico di un Risultato Corretto

Page 37: La Rappresentazione dell’Informazione

37

Codifica dei Numeri Reali

  I numeri reali possono essere rappresentati in due modalità:

virgola fissa

virgola mobile, più diffusa

Page 38: La Rappresentazione dell’Informazione

38

Codifica dei Numeri Reali Virgola Mobile

In un numero rappresentato in virgola mobile vengono stabiliti un certo numero di bit assegnati per codificare il segno (s), la mantissa (m) ed un certo numero di bit per codificare l'esponente (e).

E’ possibile in teoria avere un numero elevatissimo di codifiche in virgola mobile, cambiando:

Numero bitTipo di codifica binaria per mantissa ed esponenteFormula di conversione decimale/binario e viceversa

s (1 bit) e m

Page 39: La Rappresentazione dell’Informazione

39

Codifica dei Numeri Reali Virgola Mobile IEEE 754

Nell'anno 1985 l'IEEE (The Institute of Electrical and Electronics Engineering) ha definito uno standard per la codifica dei numeri reali in virgola mobile: IEEE 754.

Lo standard prevedeva inizialmente due codifiche a 32 (float) e a 64 bit (double). Esistono poi delle estensioni, ad esempio quella a 80 bits.

La rappresentazione IEEE 754 prevede due diverse forme: Normalizzata (default)Denormalizzata (risultato di calcoli che producono

numeri piccoli)

Page 40: La Rappresentazione dell’Informazione

40

Codifica dei Numeri Reali Virgola Mobile IEEE 754

Nella codifica float a 32 bit, vengono assegnati:1 bit per il segno (il bit più significativo), s8 bit per l'esponente, e23 bit per la mantissa, m

Nella codifica double a 64 bit, vengono assegnati:1 bit per il segno (il bit più significativo), s11 bit per l'esponente, e52 bit per la mantissa, m

Page 41: La Rappresentazione dell’Informazione

41

Codifica dei Numeri Reali Virgola Mobile IEEE 754

Normalizzata1emax 

max=254 (float)max=2046 (double)

m = codifica decimale della sequenza di bit

della mantissa

 

p=127 (float)p=1023 (double)

Denormalizzatae=0 m = codifica decimale

della sequenza di bit della mantissa

 

min= -126 (float)min= –1022 (double)

Zero e=0 m=0  

Infinito e=(1111..1)2=255e=(1111..1)2=2047

m=0  

pes10 2m,1)1(N

mins10 2m,0)1(N

10N

0N10

Page 42: La Rappresentazione dell’Informazione

42

Codifica dei Numeri Reali Virgola Mobile IEEE 754

normalizzata

1x2-126 3.4 x 10 38

denormalizzatafloat

doublenormalizzata

1x2-1022 1.7 x 10 308

denormalizzata

127es10 2m,1)1(N

1023es10 2m,1)1(N

126s10 2m,0)1(N

1022s10 2m,0)1(N

Page 43: La Rappresentazione dell’Informazione

43

 

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. Se ad esse 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 (7 bit permettono di rappresentare 128 simboli diversi).

E' chiaro che è 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 44: La Rappresentazione dell’Informazione

44

Codifica AlfanumericaCodifica ASCII

La codifica ASCII (che si pronuncia ASKI), 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.)

Tra le più utilizzate codifiche ASCII (entro i primi 128 simboli) vi sono:  ~ (tilde) codice 126 { codice 123 } codice 125 | codice 124

 

Page 45: La Rappresentazione dell’Informazione

45

Come si vede:I caratteri di controllo (non riproducibili) hanno i codici più bassi.Il blank (Spazio) è il primo dei caratteri riproducibili.Le maiuscole/minuscole sono ordinate (codice Progressivo).

 

Codifica AlfanumericaCodifica ASCII

9765

123

125

32

Page 46: La Rappresentazione dell’Informazione

46

Codifiche Alfanumerichederivate dalla Codifica ASCII

Esistono numerose estensioni della codifica ASCII. Tali estensioni derivano dalla necessità di codificare simboli

legati a particolari lingue, e dal fatto che operando su 8 bit, la codifica ASCII consente l'utilizzo dell'ottavo bit, lasciando gli altri 7 inalterati.

Tutte le estensioni della codifica ASCII non modificano tale codifica ma aggiungono semplicemente altri 128 simboli.

Tra le estensioni STANDARD più diffuse vi è la ISO Latin1 (caratteri per linguaggi europa occidentale)

 

Page 47: La Rappresentazione dell’Informazione

47

 

Codifica AlfanumericaCodifica Unicode

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

Operava inizialmente su 2 byte (65.536 codifiche)E’ stata estesa fino a 32 bit e attualmente sono più di 100.000

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 ingloba la codifica ISO Latin1.