240 likes | 381 Views
riporto. 0 1 1 0 0 0. in binario. 0 1101 1 + 0 01100 = ------- 0 1 00111. Risultato troppo grande 27+12. = -25 errore di overflow. 27+ 12 = --- 39. I due ultimi riporti sono diversi. 64-39 = 25 -25 64 - 25 = 39. riporto. 1 0 0 1 0 0. in binario. 1 00101+ 1 10100 =
E N D
riporto 011000 in binario 011011+ 001100= ------- 0100111 Risultato troppo grande 27+12 = -25 errore di overflow 27+ 12= --- 39 I due ultimi riporti sono diversi 64-39 = 25-2564-25= 39
riporto 100100 in binario 100101+ 110100= ------- 1011001 Risultato troppo piccolo (-27)+(-12) = 25 errore di overflow -2764-27= 37 -1264-12= 52 37+ 52= --- 89 I due ultimi riporti sono diversi 89-64 = 25
x5 x4 x3 x2 x1 x0 y5 y4 y3 y2 y1 y0 0 ADD ADD ADD ADD ADD ADD Bit di overflow R6 R5 R4 R3 R2 R1 s5 s4 s3 s2 s1 s0 R5 X Riporto 100100 x 100101+ y 110100 = ------- s1011001
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
5 4 parte intera decimale parte frazionaria decimale in binario 101 100 parte intera binaria parte frazionaria binaria Rappresentazione decimale e binaria dei razionali 5 : 4 = 1,25 10 20 0 1,2510 101 : 100 = 1,01 100 0 1,012
2,333..10 = 2,310 7 3 in binario 10,0100100..2 = 10,0102 111 11 7 : 3 = 2,33.. 10 10 1 111 : 11 = 10,01001001.. 0100 100 100
7 5 in binario 111 101 1,0110001000..2 = 1,0110002 7 : 5 = 1,4 20 0 1,410 111 : 101 = 1,0110001000.. 1000 110 1000 110 1000
in binario ? 3,141592....10
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 2-1 2-2... 1,101001 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: rappresentazione binaria di 0,59 0,592= 1,18 0,182= 0,36 0,362= 0,72 0,722= 1,44 0,442= 0,88 0,882= 1,76 ....... 0,100101... dipende da quanti bit abbiamo a disposizione
esempio 18,59 18 10010 0,59 0,100101... 10010,100101....
Rappresentazione dei Reali in un computer 1 8 23 se+127m Siccome 0 e 255 sono speciali: 1 e+127 254 quindi -126 e 127 Rappresenta: x = s 2e· 1,m implicito
, e = 4 0 10000011 0010100101........... 10010,100101...... 127+4 = 131=100000112
esempio di rappresentazione in virgola mobile: 101001... 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 …..
1100,101001... 1100,101001... = 23 1,100101001... mantissa = 1,100101001... esponente 3e quindi 3+127 = 130 esponente = 10000010 segno = 0 0 10000010 100101001...
- 0,0011001... 0,0011001... = 2-3 1,1001... mantissa = 1,1001... esponente -3e quindi -3+127=124 esponente = 01111100 segno = 1 1 01111100 1001...
Rappresentazione dei Reali “piccoli” 1 8 23 s 0m Rappresenta: 00,m<1 quindi -2-126<x<2-126 x = s 2-126 0,m implicito
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 disuniforme h=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 = 0 2-2 ·2-2 2-2 ·2-1 2-2 ·(2-1 +2-2 ) 2-2 ·1 = 4/32 2-2 ·(1+2-2 ) 2-2 ·(1+2-1) 2-2 ·(1+2-1 +2-2 ) 2-1 ·1 2-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
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 = 20 ·1 20 ·(1+2-2 ) 20 ·(1+2-1) 20 ·(1+2-1 +2-2 ) 21 ·1 21 ·(1+2-2 ) 21 ·(1+2-1) 21 ·(1+2-1 +2-2 ) 22 ·1 = 4 22 ·(1+2-2 ) 22 ·(1+2-1) 22 ·(1+2-1 +2-2 ) 23 ·1 23 ·(1+2-2 ) 23 ·(1+2-1) 23 ·(1+2-1 +2-2 ) = 1 = 1,25 = 1,5 = 1,75 = 2 = 2,5 = 3 = 3,5 = 4 = 5 = 6 = 7 = 8 = 10 = 12 = 14 =