Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita...

37
Rappresentazione dei dati

Transcript of Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita...

Page 1: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Rappresentazione dei dati

Page 2: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Rappresentazione digitale dei dati

Memoria del calcolatore è finita

L’insieme dei numeri (interi e

reali) e dei caratteri rappresentabili è

finito

Numeri interi (C++: int)Numeri reali (C++ float e double)Caratteri (C++ char)

Page 3: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Gli interi nel computer

e i negativi ?

Con 32 bit rappresento 232 numeri distinti.Con n bit bn-1…b1 b0:

1

0

00

11

11 2222

n

i

ii

nn bbbbx

b0 b1 b2 bn-3 bn-2 bn-1

20 21 22 2n-3 2n-12n-2

Page 4: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Riserviamo il primo bit per il segno:0 = positivo 1 = negativo.

I numeri positivi rappresentabili sono quelli compresi tra 0 e 2n-1-1

Gli interi nel computer

s b0 b1 bn-3 bn-2 bn-1

+/- 20 21 2n-3 2n-12n-2

Page 5: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Complemento a uno

Si complementa a 2n-1 il valore assoluto del numero.

1 1 1

0 0 02 2 (1 )2

n n ni i ii ii i i

x b b

Page 6: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

63- 0=--- 63

111111- 000000=------- 111111

in binario

Con n = 6 si rappresentano i numeri:

0 1 ... 31 32 ... 63

0 1 ... 31 -31 ... -0 positivi negativi

Rappr.

Numero

Rappresentazione dello 0

Page 7: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

EsempioEsempio con n = 6 bit: la rappresentazione di –10 è:

63- 10=--- 53

111111- 001010=------- 110101

in binario

Page 8: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Complemento a due

Si complementa il valore assoluto del numero a 2n invece che a 2n-1.

Esempio con n = 6 bit: la rappresentazione di –10 è:

64- 10=--- 54

1000000- 001010=-------0110110

in binario

Page 9: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Complementando 0 si ottiene ancora 0

64- 0=--- 64 ha gli ultimi 6 bit uguali a 0

in binario 1000000- 000000=-------1000000

Rappresentazione dello 0

Page 10: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Esempio

Complementando 54 (che rappresenta –10) si ottiene

64- 54=--- 10 ha il bit 6 uguale a 0(positivo)

in binario 1000000- 110110=-------0001010

Page 11: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Esempio

Complementando 32 (che rappresenta –32) si ottiene

64- 32=--- 32 ha il bit 6 uguale a 1(negativo)

in binario 1000000- 100000=-------0100000

Page 12: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Con n = 6 si rappresentano i numeri:

0 1 ... 31 32 ... 63

0 1 ... 31 -32 ... -1 positivi negativi

Rappr.

Numero

Interi in complemento a due

Page 13: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

In generale: con n bits

positivi 0 .... 2n-1-1

negativi -2n-1 .... -1

Page 14: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Somma

10+ 12=--- 22

Somma di numeri positivi: 10+12

binario

001010+ 001100=-------0010110

001000riporto

decimale

Page 15: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Somma di numeri negativi: (-10)+(-12)

-10 64-10 = 54 -12 64-12 = 52

54+ 52=---106

binario

110110+ 110100=-------1101010

Somma di numeri negativi

decimale

Page 16: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

106-64=42

bit di overflow complemento

64-42 = 22

verifica

-22 64-22= 42

Somma di numeri negativi

1101010

0*25+1*24+0*23+1*22+0*20

- 22

Page 17: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

54+ 12=--- 66

Somma con un numero negativo (-10)+12

-10 64-10 = 54

110110+ 001100=-------1000010

Somma

binariodecimale

Page 18: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

27+ 12=--- 39

64-39 = 25 -25 64-25= 39

011011+ 001100=-------0100111

Overflow

Risultato: 27+12 = -25

Page 19: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

37+ 52=--- 89

89-64 = 25

Overflow

Risultato: -27-12 = 25

-27 64-27= 37 -12 64-12= 52

100101+ 110100=-------1011001

Page 20: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Rappresentazione decimale e binaria dei razionali

5 : 4 = 1,25 10 20 0

54

1,2510

in binario

101100

101 : 100 = 1,01 100 0

1,012

parte interabinaria

parte frazionaria binaria

parte interadecimale

parte frazionaria decimale

Page 21: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

7 : 3 = 2,33.. 10 10 1

73

in binario

11111

111 : 11 = 10,01001001.. 0100 100 100

2,333..10 =

2,310

10,0100100..2

= 10,0102

Esempio 1

Page 22: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

7 : 5 = 1,4 20 0

75

in binario

111101

111 : 101 = 1,0110001000.. 1000 110 1000 110 1000

1,410

1,0110001000..2

= 1,0110002

Esempio 2

Page 23: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

3,141592....10

in binario

?

Irrazionali

Page 24: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

0,1101001

2-1+ 2-2 + 2-4 + 2-7

Parte frazionaria

Page 25: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

0,1101001

moltiplicare per 2 significa spostare la virgola di un posto a destra

1,101001

2-1 2-2...

20 2-1.......

Trucco

Page 26: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

allora 2 0,99 = 1,98 = b1,b2b3...bk

quindi b1 è 1

e 0,98 è rappresentato da 0,b2b3...bk

Esempio 1

0,99 (decimale) = 0,b1b2b3...bk (binario)

Page 27: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

0,592= 1,180,182= 0,360,362= 0,72

0,722= 1,440,442= 0,880,882= 1,76

0,100101...

rappresentazione binaria di 0,59

Esempio 2

Page 28: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

1 8 23

s e+127 m

Rappresenta:

x = s 2e · 1,m

implicito

Rappresentazione dei reali

Page 29: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Estensione dei numeri invirgola mobile

0 e 255 sono esponenti riservati:

1 e+127 254 quindi

-126 e 127

Page 30: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

12,65 1100, ???

0,652 = 1.30 0,302 = 0.60 0,602 = 1.20 0,202 = 0.40 0,402 = 0.80 0,802 = 1.60 …..

101001...

Esempio

Page 31: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

1100,101001... = 23 1,100101001...

mantissa = 1,100101001...

esponente 3 e quindi 3+127 = 130

esponente = 10000010

segno = 0

0 10000010 100101001...

Esempio cont.

Page 32: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Rappresentazione dei Reali “piccoli”

1 8 23

s 0 m

Rappresenta:

x = s 2-126 0,m

implicito

0 0,m < 1 quindi -2-126 < x < 2-126

Page 33: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Rappresentazione dei Reali “grandi”

1 8 23

s 255 0

Rappresenta: Si può ottenere come risultato di qualche operazione aritmetica (es: divisione per 0).

Se lo si usa come operando in una operazione aritmetica si ha un errore.

Page 34: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

quanti reali si rappresentano?

con una parola, cioè 32 bits possiamo rappresentare 232 cose, quindi al più 232 reali, la novità è che questi valori non sono distribuiti uniformemente come gli interi ma sono maggiormente concentrati in vicinanza dello 0 e si diradano sempre più allontanandosi dallo 0.

Page 35: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

Distribuzione disuniformeh=2 bits di mantissa e k=3 di esponente.Rappresentazione dell’esponente:

0 000 00 =0 000 01 =0 000 10 =0 000 11 =0 001 00 =0 001 01 =0 001 10 =0 001 11 =0 010 00 =0 010 01 =0 010 10 =0 010 11 =

02-2 ·2-2

2-2 ·2-1

2-2 ·(2-1 +2-2 )2-2 ·1 = 4/322-2 ·(1+2-2 )2-2 ·(1+2-1)2-2 ·(1+2-1 +2-2 )2-1 ·12-1 ·(1+2-2 )2-1 ·(1+2-1) 2-1 ·(1+2-1 +2-2 )

= 0= 0.0625= 0,125= 0,1875= 0,25= 0,3125= 0,375 = 0,4375 = 0,5= 0,625= 0,75= 0,875

312 1 ee k

Page 36: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

20 ·120 ·(1+2-2 )20 ·(1+2-1)20 ·(1+2-1 +2-2 )21 ·121 ·(1+2-2 )21 ·(1+2-1) 21 ·(1+2-1 +2-2 )22 ·1 = 422 ·(1+2-2 )22 ·(1+2-1)22 ·(1+2-1 +2-2 )23 ·123 ·(1+2-2 )23 ·(1+2-1)23 ·(1+2-1 +2-2 )

0 011 00 =0 011 01 =0 011 10 =0 011 11 =0 100 00 =0 100 01 =0 100 10 =0 100 11 =0 101 00 =0 101 01 =0 101 10 =0 101 11 =0 110 00 =0 110 01 =0 110 10 =0 110 11 =0 111 00 =

= 1= 1,25= 1,5= 1,75 = 2= 2,5= 3= 3,5= 4= 5= 6 = 7 = 8= 10= 12= 14=

Distribuzione disuniforme cont.

Page 37: Rappresentazione dei dati. Rappresentazione digitale dei dati Memoria del calcolatore è finita Linsieme dei numeri (interi e reali) e dei caratteri rappresentabili.

0 8 4 2 1

0 1 0,5

0,2

5

0,1

25

14 12 10

Distribuzione disuniforme cont.