Risultato troppo grande 27+12 = -25
errore di overflow
27+
12=
--39
riporto
in binario
I due ultimi riporti
sono diversi
64-39 = 25
011000
011011+
001100=
------0100111
-25  64-25= 39
Risultato troppo piccolo (-27)+(-12) = 25
errore di overflow
-27  64-27= 37
-12  64-12= 52
riporto
37+
52=
--89
89-64 = 25
in binario
I due ultimi riporti
sono diversi
100100
100101+
110100=
------1011001
Riporto
x
y
Bit di overflow
x5
y5
100100
100101 +
110100 =
------1011001
s
x4
y4
x3
y3
x2
y2
x1
y1
x0
y0
0
R5
ADD
ADD
ADD
ADD
ADD
ADD
X
R6
s5
R5
s4
R4
s3
R3
s2
R2
s1
R1
s0
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
in binario
101
100
5 : 4 = 1,25
10
20
parte
0
1,2510
intera
decimale
101 : 100 = 1,01
100
0
parte
intera
binaria
parte
frazionaria
decimale
1,012
parte
frazionaria
binaria
7
3
7 : 3 = 2,33..
10
10
1
2,333..10
=
2,310
in binario
111
11
111 : 11 = 10,01001001..
0100
100
100
10,0100100..2
=
10,0102
7 : 5 = 1,4
20
0
7
5
1,410
in binario
111
101
111 : 101 = 1,0110001000..
1000
110
1000
1,0110001000..2
110
1000
=
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
2-1 2-2...
1,101001
20 2-1.......
moltiplicarlo per 2
significa spostare la
virgola di un posto a
destra
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,592= 1,18 0,722= 1,44
0,182= 0,36 0,442= 0,88
0,100101...
0,362= 0,72 0,882= 1,76
....... 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
s e+127
m
Rappresenta:
x=s
e
2 ·
1,m
implicito
Siccome 0 e 255 sono
speciali:
1  e+127  254
quindi
-126  e  127
1,0010,100101......
e=4
127+4 = 131=100000112
0 10000011 0010100101...........
esempio di rappresentazione in
virgola mobile:
12,65  1100, 101001...
???
0,652 = 1.30
0,302 = 0.60
0,602 = 1.20
0,202 = 0.40
0,402 = 0.80
0,802 = 1.60
…..
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
s
0
23
m
Rappresenta:
x=s
-126
2 0,m
implicito
0  0,m < 1
quindi
-2-126 < x < 2-126
Rappresentazione dei Reali “grandi”
1
8
23
s 255
Rappresenta:
0

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.
k 1
e

2
1  e  3
Rappresentazione dell’esponente:
0
0
0
0
0
0
0
0
0
0
0
0
000
000
000
000
001
001
001
001
010
010
010
010
00
01
10
11
00
01
10
11
00
01
10
11
=
=
=
=
=
=
=
=
=
=
=
=
0
2-2
2-2
2-2
2-2
2-2
2-2
2-2
2-1
2-1
2-1
2-1
=
·2-2
=
·2-1
=
·(2-1 +2-2 )
=
·1 = 4/32
=
·(1+2-2 )
=
·(1+2-1)
=
·(1+2-1 +2-2 ) =
·1
=
·(1+2-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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
011
011
011
011
100
100
100
100
101
101
101
101
110
110
110
110
111
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
20
20
20
20
21
21
21
21
22
22
22
22
23
23
23
23

·1
·(1+2-2 )
·(1+2-1)
·(1+2-1 +2-2
·1
·(1+2-2 )
·(1+2-1)
·(1+2-1 +2-2
·1 = 4
·(1+2-2 )
·(1+2-1)
·(1+2-1 +2-2
·1
·(1+2-2 )
·(1+2-1)
·(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

4
8
0,5
0
2
0,25
1
0,125
0
10
1
12
14

Scarica

Lezioni4