27+ 12= Risultato troppo grande = = 39 = -25 errore di overflow in binario = riporto I due ultimi riporti sono diversi
37+ 52= Risultato troppo piccolo (-27)+(-12) = 25 = 25 errore di overflow = = 52 in binario = riporto I due ultimi riporti sono diversi
Riporto x y = s x0x0 0 ADD y0y0 s0s0 x1x1 y1y1 s1s1 x2x2 y2y2 s2s2 x3x3 y3y3 s3s3 x4x4 R5R5 y4y4 s4s4 x5x5 y5y5 s5s5 R4R4 R3R3 R2R2 R1R1 R6R6 R5R5 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 leventuale bit in colonna n del risultato (ovvero lultimo riporto) per ottenere il risultato corretto
Rappresentazione decimale e binaria dei razionali 5 : 4 = 1, ,25 10 in binario : 100 = 1, ,01 2 parte intera binaria parte frazionaria binaria parte intera decimale parte frazionaria decimale
7 : 3 = 2, in binario : 11 = 10, , = 2, , = 10,010 2
7 : 5 = 1, in binario : 101 = 1, ,4 10 1, = 1,
3, in binario ?
REALE BINARIO cosa significa una parte frazionaria binaria: 0,
0, moltiplicarlo per 2 significa spostare la virgola di un posto a destra 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,b 1 b 2 b 3...b k (binario) allora 2 0,99 = 1,98 = b 1,b 2 b 3...b k quindi b 1 è 1 e 0,98 è rappresentato da 0,b 2 b 3...b k
per trovare la rappresentazione binaria di un decimale lo moltiplichiamo per 2 ed osserviamo se 1 appare nella parte intera: 0,59 2= 1,18 0,18 2= 0,36 0,36 2= 0,72 0,72 2= 1,44 0,44 2= 0,88 0,88 2= 1, , dipende da quanti bit abbiamo a disposizione rappresentazione binaria di 0,59
esempio 18, ,59 0, ,
Rappresentazione dei Reali in un computer s e+127 m Rappresenta: x = s 2 e · 1,m implicito Siccome 0 e 255 sono speciali: 1 e quindi -126 e 127
1 0010, , e = = 131=
12, , ??? 0,65 2 = ,30 2 = ,60 2 = ,20 2 = ,40 2 = ,80 2 = 1.60 … esempio di rappresentazione in virgola mobile:
1100, , = 2 3 1, mantissa = 1, esponente 3 e quindi = 130 esponente = segno =
- 0, , = , mantissa = 1, esponente -3 e quindi =124 esponente = segno =
Rappresentazione dei Reali piccoli s 0 m Rappresenta: x = s ,m implicito 0 0,m < 1 quindi < x <
Rappresentazione dei Reali grandi s 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 2 32 cose, quindi al più 2 32 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 disuniforme h=2 bits di mantissa e k=3 di esponente. Rappresentazione dellesponente: = = = = = = = = = = = = · · ·( ) 2 -2 ·1 = 4/ ·( ) 2 -2 ·( ) 2 -2 ·( ) 2 -1 · ·( ) 2 -1 ·( ) 2 -1 ·( ) = 0 = = 0,125 = 0,1875 = 0,25 = 0,3125 = 0,375 = 0,4375 = 0,5 = 0,625 = 0,75 = 0,875
2 0 ·1 2 0 ·( ) 2 0 ·( ) 2 0 ·( ) 2 1 ·1 2 1 ·( ) 2 1 ·( ) 2 1 ·( ) 2 2 ·1 = ·( ) 2 2 ·( ) 2 2 ·( ) 2 3 ·1 2 3 ·( ) 2 3 ·( ) 2 3 ·( ) = = = = = = = = = = = = = = = = = = 1 = 1,25 = 1,5 = 1,75 = 2 = 2,5 = 3 = 3,5 = 4 = 5 = 6 = 7 = 8 = 10 = 12 = 14 =