Rappresentazione delle informazioni - unina.stidue.netunina.stidue.net/Calcolatori Elettronici...

18
-1.g Rappresentazione delle informazioni Rappresentazione delle informazioni Informazioni numeriche Informazioni numeriche Testo di rif.to: [Congiu] - 1.1 (pg. 1–17) 1 Architettura degli Elaboratori © 2010 33 1. I sistemi di numerazione Decimale, binario, esadecimale… Conversioni di base 2. Le informazioni numeriche Numeri naturali (senza segno o “unsigned”) Numeri interi (con segno o “signed”) Numeri non interi (fixed-/floating-point) 3. Le informazioni non numeriche Testi, immagini, suoni, video… Cosa vedremo Cosa vedremo

Transcript of Rappresentazione delle informazioni - unina.stidue.netunina.stidue.net/Calcolatori Elettronici...

-1.g

Rappresentazione delle informazioniRappresentazione delle informazioni

Informazioni numericheInformazioni numeriche

Testo di rif.to: [Congiu] - 1.1 (pg. 1–17)

1

Architettura degli Elaboratori © 2010

33

1. I sistemi di numerazione• Decimale, binario, esadecimale…• Conversioni di base

2. Le informazioni numeriche• Numeri naturali (senza segno o “unsigned”)• Numeri interi (con segno o “signed”)• Numeri non interi (⇒ fixed-/floating-point)

3. Le informazioni non numeriche• Testi, immagini, suoni, video…

Cosa vedremoCosa vedremo

2

Architettura degli Elaboratori © 2010

33(… a2a1a0.a-1a-2 …)b = = …+ a2·b2 + a1·b1 + a0·b0 + a-1·b-1 + a-2·b-2 +…= Σi ai·bi

Il sistema posizionaleIl sistema posizionale

• b è la base del sistema di numerazione

• Gli ai sono le cifre del numero• Il valore di una cifra dipende

dalla sua posizione

3

Architettura degli Elaboratori © 2010

33

Sistema decimaleSistema decimale

• b=10• Possibili cifre: {0;1;2;3;4;5;6;7;8;9}

2 / 102

4 / 10 +

5 +

9 · 10 +

0 · 102 +2 · 103 +2095.4210=

4

Architettura degli Elaboratori © 2010

33

Sistema binarioSistema binario

• b=2• Possibili cifre: {0;1}

1 / 23

0 / 22 +1 / 2 +1 +1 · 2 +0 · 22 +1 · 23 +1 · 24 +

= 27.62510

11011.1012 =

5

Architettura degli Elaboratori © 2010

33

Sistema ottaleSistema ottale

• b=8• Possibili cifre: {0;1;2;3;4;5;6;7}

1 / 8

5 +

7 · 8 +3 · 82 +

= 253.12510

375.18 =

Una cifra ottale può rappresentare 3 cifre binarie:

1536001101011110

1100111010012 = 63518

6

Architettura degli Elaboratori © 2010

33

Sistema esadecimaleSistema esadecimale

• b=16• Possibili cifre: {0;1;2;3;4;5;6;7;8;9;A;B;C;D;E;F}

1 / 16

9 +

11 · 16 +7 · 162 +

= 1977.062510

7B9.116 =

Una cifra esadecimale può rappresentare 4 cifre binarie:

9EC100111101100

1100111010012 = CE916

7

Architettura degli Elaboratori © 2010

33• Da ottale/esadecimale a binario:

espansione di ogni cifra in una terna/quaterna di cifre binarie.

• Da binario a ottale/esadecimale:raggruppamento in terne/quaterne di cifre e sostituzione di ciascuna terna/quaterna con l’opportuna cifra ottale/esadecimale.

• Da qualsiasi base a decimale:applicando la definizione di notazione posizionale.

Conversioni di base (1 di 4)Conversioni di base (1 di 4)

8

Architettura degli Elaboratori © 2010

33

Conversioni di base (2 di 4)Conversioni di base (2 di 4)

Da decimale a qualsiasi altra base bParte intera: si prendono i restidelle divisioni successive per b

Esempio: 200910 = 7D916

resto: 707/16 =resto: 13=D167125/16 =resto: 91252009/16 =

Il procedimento si arresta

L’ultima cifraè la piùsignificativa

9

Architettura degli Elaboratori © 2010

33

Conversioni di base (3 di 4)Conversioni di base (3 di 4)

Da decimale a qualsiasi altra base bParte frazionaria: si prendono le parti interedelle moltiplicazioni successive per b

Esempio: 0.687510 = 0.10112

parte intera: 110.5·2 =parte intera: 11.50.75·2 =parte intera: 00.750.375·2 =parte intera: 11.3750.6875·2 =

Il procedimento si arresta

La prima cifraè la piùsignificativa

10

Architettura degli Elaboratori © 2010

33

Conversioni di base (4 di 4)Conversioni di base (4 di 4)

Da decimale a qualsiasi altra base bParte frazionaria

Il procedimento può anche essere infinito!Esempio: 0.310 = 0. …

parte intera: 11.20.6·2 =parte intera: 11.60.8·2 =parte intera: 00.80.4·2 =

………

parte intera: 00.40.2·2 =parte intera: 11.20.6·2 =parte intera: 00.60.3·2 =

010012

11

Architettura degli Elaboratori © 2010

33

11Rappresentazione negli elaboratoriRappresentazione negli elaboratori

Negli elaboratori, l’elemento base per la rappresentazione delle informazioni è il BInary digiT o piùsemplicemente BIT (Tukey, 1947).

Può essere realizzato in molti modi diversi (carica elettrica, campo magnetico, ecc.), ma in tutti i casi può assumere esattamente 2 valori e corrisponde quindi a una cifra binaria.

Qualsiasi informazione in un elaboratore è rappresentata tramite un numero finito di bit.

12

Architettura degli Elaboratori © 2010

33

Rappresentazione finita: osservazioneRappresentazione finita: osservazione

Utilizzando un numero di cifre finito si può rappresentare solo una quantità finita di numeri.Esempio per i numeri naturali:

1073741823023030210485750220202

102302101021502442

2M-102MM2

9999010441010M-1010MM10

maxminquantitàn. di cifrebase

13

Architettura degli Elaboratori © 2010

33

Potenze di 2Potenze di 2

Quando il numero di bit è elevato, si usano delle abbreviazioni analoghe a quelle delle unità di misura

yotta-

zeta-

exa-

peta-

tera-

giga-

mega-

kilo-

Nome

1Y

1Z

1E

1P

1T

1G

1M

1K

Prefisso ValorePot. di 2

~1.2 x 10 242 80

~1.2 x 10 212 70

~1.2 x 10 182 60

~1.1 x 10 152 50

~1.1 x 10 122 40

1.073.741.8242 30

1.048.5762 20

1.0242 10

yobi-

zebi-

exbi-

pebi-

tebi-

gibi-

mebi-

kibi-

1Yi

1Zi

1Ei

1Pi

1Ti

1Gi

1Mi

1Ki

IEC60027

14

Architettura degli Elaboratori © 2010

33

Numeri naturaliNumeri naturali

Esempio di rappresentazione con M=4 cifre (bit):

1510=11112

1410=11102

…410=01002

310=00112

210=00102

110=00012

010=00002

I numeri maggiori di 15 non sono rappresentabili.

15

Architettura degli Elaboratori © 2010

33

Numeri interi: ampiezza e segnoNumeri interi: ampiezza e segno

Il primo bit (quello più significativo) viene utilizzato per indicare il segno:

+010=00002

-010↔10002

+710=01112

+610=01102

…+110=00012

-110↔10012

-510↔11012

-610↔11102

-710↔11112

2 rappresentazionidello 0

Si riduce il numerodi interi positivirappresentabili

16

Architettura degli Elaboratori © 2010

33

Numeri interi: eccesso PNumeri interi: eccesso P

Il valore rappresentato si ottiene sottraendo Pal valore calcolato secondo la notazione posizionale.Esempio con M=4 e P=8 (di solito P=2M-1):

010↔10002

710↔11112

610↔11102

…110↔10012

-110↔01112

-610 = 210-810↔00102

-710 = 110-810↔00012

-810 = 010-810↔00002

Una sola rappresentazione

dello 0

Dissimmetria

17

Architettura degli Elaboratori © 2010

33

Numeri interi: complemento a 1Numeri interi: complemento a 1

La rappresentazione di un intero positivo coincide con quella del corrispondente numero naturale.La rappresentazione di un intero negativo si ottiene complementando bit a bit quella del suo opposto.

+010=00002

-010↔11112

+710=01112

+610=01102

…+110=00012

-110↔11102

-610↔10012

-710↔10002

2 rappresentazionidello 0

18

Architettura degli Elaboratori © 2010

33

Numeri interi: complemento a 2Numeri interi: complemento a 2

La rappresentazione di un intero positivo coincide con quella del corrispondente numero naturale.La rappresentazione di un intero negativo si ottiene aggiungendo una unità al complemento a 1.

010=00002

-110↔11112

+710=01112

+610=01102

…+110=00012

-710↔10012

-810↔10002

19

Architettura degli Elaboratori © 2010

33

Complemento a 2: proprietComplemento a 2: proprietàà

È il metodo di rappresentazione più diffuso, perché èl’unico tra quelli visti con tutte le seguenti proprietà.

• Ha una sola rappresentazione dello 0.• Ha una struttura ciclica: aggiungendo 1 al massimo numero rappresentabile si ottiene il minimo numero rappresentabile.• Consente le operazioni aritmetiche con i numeri negativi usando le stesse regole valide per i numeri positivi. Esempi:

-11111+70111-41100+40100+30011+30011

20

Architettura degli Elaboratori © 2010

33

Complemento a 2: Complemento a 2: overflowoverflow

Nell’eseguire le operazioni aritmetiche, ci si deve comunque assicurare che il risultato sia rappresentabile con il numero di bit a disposizione.Se ciò non è vero (overflow), l’esito dell’operazione èprivo di significato.

Come riconoscere l’overflow? Tramite i riporti.

OVERFLOW (-)SiNo

OKSiSiOVERFLOW (+)NoSi

OKNoNo

Esitodell’operazione

Riporto “nel bit a SX del segno”

Riporto nel bit di segno

21

Architettura degli Elaboratori © 2010

33

OverflowOverflow: esempi: esempi

-111←0101OVERFLOWSiNo-61010

EsitoRip. SX bit segnoRip. bit segno-51011

+70111OKNoNo+20010

EsitoRip. SX bit segnoRip. bit segno+50101

+91001OVERFLOWNoSi+60110

EsitoRip. SX bit segnoRip. bit segno+30011

-71←1001OKSiSi-21110

EsitoRip. SX bit segnoRip. bit segno-51011

22

Architettura degli Elaboratori © 2010

33

Numeri non interi (1 di 2)Numeri non interi (1 di 2)

FIXED-POINTR = I.F

I: parte intera; F: parte frazionaria

Il numero di bit riservati a I e a F non dipendeda R: il punto decimale è fisso.A seconda delle applicazioni, la posizione del puntodecimale può essere codificata o implicita.

Nota: un numero con NF cifre frazionarie può esseretrattato come un intero se viene moltiplicato per 2NF

23

Architettura degli Elaboratori © 2010

33

Numeri non interi (2 di 2)Numeri non interi (2 di 2)

FLOATING-POINT (standard IEEE 754)R = M·2E

M = {s }1.mE = e - 127

1 8 bit 23 bit

e m

31 30 23 22 0↓ ↓ ↓↓ ↓

s

24

Architettura degli Elaboratori © 2010

33

Rappresentazione floatingRappresentazione floating--pointpoint

Standard IEEE 754R = M·2E

⇒ M (mantissa) 24 bit: 1 per il segno s (0=“+”)23 per l’ampiezza

1.xxx…xx - in notazione fixed point normalizzata;la parte intera (sempre 1) non viene rappresentata,i 23 bit rappresentano la parte frazionaria m = xxx…xx

⇒ E (caratteristica) 8 bit: in notazione eccesso 127(e)

25

Architettura degli Elaboratori © 2010

33

Rappresentazione Rappresentazione floatingfloating--pointpoint: esempio: esempio

001100110011001100110011 8 bit 23 bit

01111101

31 30 23 22 0↓ ↓ ↓↓ ↓

0

Es: 0.310 = 0.010012 = 1.00112·2-2

M = +1.0011 s = 0 m = 0011E = -2 = e-127 e = 12510 = 011111012

Standard IEEE 754R = M·2E

In esadecimale: 3E999999

26

Architettura degli Elaboratori © 2010

33

R = M·2E

Intervallo dei numeri rappresentabiliM = {s }1.m 1.00…02 ≤ |M| ≤ 1.11…12

E = e – 127 0≤ e ≤255 ⇒ -127≤ E ≤+128i valori estremi sono riservati per situazioni particolari: e = 0 ⇒ il numero 0 (se m = 0)

(se m ≠ 0) numero non normalizzatoe = 255 ⇒ il numero ∞ (se m = 0)

(se m ≠ 0) numero non valido

Numeri f.p. rappresentabiliNumeri f.p. rappresentabili

1 8 bit 23 bite m

31 30 23 22 0↓ ↓ ↓↓ ↓s

1 ≤ |M| ≤ 2-2-23

-126 ≤ E ≤ 127

27

Architettura degli Elaboratori © 2010

33

R = M·2E

il numero P con modulo più piccolo (≠0):P = 1·2-126 ≈ 1.1810·10-38

(con mantissa normalizzata)

P = 0.0…01·2-126 ≈ 2-149 ≈ 1.410·10-45

(non normalizzato)

il numero G con modulo più grande:G = (2 - 2-23 ) ·2+127 ≈ 3.410·10+38

Numeri f.p. rappresentabiliNumeri f.p. rappresentabili

1 ≤ |M| ≤ 2-2-23 -126 ≤ E ≤ 127

28

Architettura degli Elaboratori © 2010

33

R = M·2E

Intervallo dei numeri rappresentabili sull’asse reale:

degli infiniti numeri reali compresi tra - G e G sono rappresentabili con esattezza solo 232 (≈4·109) numeri razionali (in realtà un po’ meno); in generale un numero reale R sarà rappresentato dal più vicino di questi numeri razionali; l’errore di approssimazione è ≤ d/2

Numeri f.p. rappresentabiliNumeri f.p. rappresentabili

erra ≤ d/2

G ≈ 3.410·10+38P ≈ 1.410·10-45

·0

R

d

P-P G-G

29

Architettura degli Elaboratori © 2010

33

R = M·2E

Intervallo dei numeri rappresentabili sull’asse reale:

d è la differenza tra due numeri rappresentabili consecutivi:

Numeri f.p. rappresentabiliNumeri f.p. rappresentabili

erra ≤ d/2 = 2E-24

G ≈ 3.410·10+38P ≈ 1.410·10-45

·0

R

d

P-P G-G

1.xx…x1·2E

-1.xx…x0·2E

d=0.00…01·2E = 2E-23

30

Architettura degli Elaboratori © 2010

33

R = M·2E

Intervallo dei numeri rappresentabili sull’asse reale:

l’errore assoluto di approssimazione erra è funzione di E: ▪ erra è piccolo vicino allo 0 (2-126-24) ▪ erra è grande vicino a ± G (2+127-24)

Ma ciò che più interessa è l’errore relativo errr :

erra≤d/2=2E-24 G ≈ 3.410·10+38P ≈ 1.410·10-45

Errori nella rappresentazione f.p.Errori nella rappresentazione f.p.

P-P G-G

0

erra 2E-24 2-24errr = = = (1≤M<2)

R M·2E M

errr ≤ 2-24 ≈ 10-8

31

Architettura degli Elaboratori © 2010

33

R = M·2E

Intervallo dei numeri rappresentabili sull’asse reale:

precisione: ≈ 7 decimali significativi (es: h=173.4768 cm) Esempi di grandezze fisiche “estreme” i cui valori sono “gestibili” con questa rappresentazione f.p.:

▪ distanza terra - quasar: ≈ 1027 m▪ dimensione quark: ≈ 10-18 m

P-P G-G

0

G ≈ 3.410·10+38P ≈ 1.410·10-45errr≤2-24 ≈ 10-8

Caratteristiche della rappresentazione f.p.Caratteristiche della rappresentazione f.p.

32

Architettura degli Elaboratori © 2010

33

FLOATING POINT (standard IEEE 754) R = M·2E

PRECISIONE DOPPIA: 64 bit

Caratteristiche della rappresentazione f.p.Caratteristiche della rappresentazione f.p.

M = {s }1.mE = e - 1023

1 11 bit 52 bit

e m

63 62 52 51 0↓ ↓ ↓↓ ↓

s

33

Architettura degli Elaboratori © 2010

33

R = M·2E

PRECISIONE DOPPIA: 64 bit

precisione: ≈ 16 cifre decimali significative. Sono rappresentabili solo 264 = 16 E (EXA = 1018) degli infiniti numeri reali compresi tra -G e G.Esempio di grandezza fisica estrema gestibile con questa rappresentazione f.p.:

▪ numero di particelle subatomiche nell’universo: ≈ 1080

P-P G-G

0

G ≈ 1.810·10+308P ≈ 2.210·10-308errr ≈ 10-17

Rappresentazione f.p. in precisione doppiaRappresentazione f.p. in precisione doppia

-1.g

FineFine

Rappresentazione delle informazioni