24
27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000 ripor to I due ultimi riporti sono diversi

27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

Embed Size (px)

Citation preview

Page 1: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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

Page 2: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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

Page 3: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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

Page 4: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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

Page 5: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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 6: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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

Page 7: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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

Page 8: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

3,141592....10

in binario

?

Page 9: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

REALE BINARIO

cosa significa una parte frazionaria binaria:

0,1101001

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

Page 10: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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

1,101001

2-1 2-2...

20 2-1.......

Page 11: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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

Page 12: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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

Page 13: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

esempio

18,59

18 10010

0,59 0,100101...

10010,100101....

Page 14: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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

Page 15: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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

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

127+4 = 131=100000112

Page 16: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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:

Page 17: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

1100,101001...

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

mantissa = 1,100101001...

esponente 3 e quindi 3+127 = 130

esponente = 10000010

segno = 0

0 10000010 100101001...

Page 18: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

- 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...

Page 19: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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 20: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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 21: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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 22: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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 23: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

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=

Page 24: 27+ 12= --- 39 Risultato troppo grande 27+12 64-39 = 25 -25 64-25= 39 = -25 errore di overflow in binario 011011+ 001100= ------- 0100111 011000011000

0 8 4 2 1

0 1 0,5

0,2

5

0,1

25

14 12 10