27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in...

Preview:

Citation preview

27+ 12=--- 39

Risultato troppo grande 27+12

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

= -25 errore di overflow

in binario 011011+ 001100=-------0100111

011000riporto

I due ultimi riporti sono diversi

37+ 52=--- 89

Risultato troppo piccolo (-27)+(-12)

89-64 = 25

= 25 errore di overflow-27 64-27= 37

-12 64-12= 52

in binario 100101+ 110100=-------1011001

100100riporto

I due ultimi riporti sono diversi

Riporto 100100 x 100101 + y 110100 = ------- s 1011001

x0

0

ADD

y0

s0

x1

y1

s1

x2

y2

s2

x3

y3

s3

x4

R5

y4

s4

x5

y5

s5

ADDADDADDADDADD

R4 R3 R2 R1R6

R5

X

Bit di overflow

due fatti importanti:

•una somma dà overflow se e solo se i riporti in colonna n ed n-1 sono diversi

•Se non c’è overflow allora basta buttare l’eventuale bit in colonna n del risultato (ovvero l’ultimo riporto) per ottenere il risultato corretto

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

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

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

3,141592....10

in binario

?

REALE BINARIO

cosa significa una parte frazionaria binaria:

0,1101001

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

0,1101001 moltiplicarlo per 2 significa spostare la virgola di un posto a destra

1,101001

2-1 2-2...

20 2-1.......

se abbiamo un reale in base 10: ad esempio

0,99

come troviamo la sua rappresentazione in base 2? Ragioniamo come segue:

supponiamo che 0,99 = 0,b1b2b3...bk (binario)

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

quindi b1 è 1

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

per trovare la rappresentazione binaria di un decimale lo moltiplichiamo per 2 ed osserviamo se 1 appare nella parte intera:

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

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

0,100101...dipende da quanti bit abbiamo a disposizione

rappresentazione binaria di 0,59

esempio

18,59

18 10010

0,59 0,100101...

10010,100101....

Rappresentazione dei Reali in un computer

1 8 23

s e+127 m

Rappresenta:

x = s 2e · 1,m

implicito

Siccome 0 e 255 sono speciali:

1 e+127 254 quindi

-126 e 127

1 0010,100101......,e = 4

0 0010100101...........10000011

127+4 = 131=100000112

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 di rappresentazione in virgola mobile:

1100,101001...

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

mantissa = 1,100101001...

esponente 3 e quindi 3+127 = 130

esponente = 10000010

segno = 0

0 10000010 100101001...

- 0,0011001...

0,0011001... = 2-3 1,1001...

mantissa = 1,1001...

esponente -3 e quindi -3+127=124

esponente = 01111100

segno = 1

1 01111100 1001...

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

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.

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.

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

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=

0 8 4 2 1

0 1 0,5

0,2

5

0,1

25

14 12 10

Recommended