Вы находитесь на странице: 1из 23

Clculo Numrico

Prof. Aparecido J. de Souza


aparecidosouza@ci.ufpb.br

Representao de Nmeros em Mquinas


Parte 1 : Em ponto Fixo
Parte 2: Em ponto Flutuante
Representao em ponto fixo.
Representao de um nmero inteiro na base 10.
Exemplo 1.
(a) (25)10 (5 100 + 2 101 ).
(b) (7)10 7 100 .
(c) (2017)10 (7 100 + 1 101 + 0 102 + 2 103 ).
Representao de um nmero inteiro N 6= 0 na base 10,
com p + 1 dgitos significativos.
N = (dp d(p1) d1 d0 )10
(d0 100 + d1 101 + + d(p1) 10p1 + dp 10p )
p
 
0
= d0 10 + dk 10 , k
k =1
em que d0 , d1 d(p1) , dp assumem valores no conjunto
{0, 1, , 8, 9}, com dp 6= 0.
Obs. Note a ordenao dos dgitos da direita para a esquerda.
Representao em ponto fixo.
Representao de um nmero inteiro na base 2.
Porque base 2?
Porque os computadores trabalham internamente na base 2.
0 significa off e 1 significa on.
Exemplo 2.
(a) (11001)2 = (1 20 + 0 21 + 0 22 + 1 23 + 1 24 )
= (25)10 .
(b) (111)2 = (1 20 + 1 21 + 1 22 ) = (7)10 .
(c) (11111100001)2 = (1 20 + 0 21
+0 22 + 0 23 + 0 24 + 1 25 + 1 26 + 1 27
+1 28 + 1 29 + 1 210 ) = (2017)10 .

Data desta aula na base 2:


(11001)/(111)/(11111100001).
Representao em ponto fixo.
Representao de um nmero inteiro na base 2.
Exemplo 2(c).
+(11111100001)2 = +(1 20 + 0 21
+0 22 + 0 23 + 0 24 + 1 25 + 1 26 + 1 27
+1 28 + 1 29 + 1 210 ) = +(2017)10 .
Representao de um nmero inteiro N 6= 0 na base 2, com
p + 1 dgitos significativos.
N = (dp d(p1) d1 d0 )2
(d0 20 + d1 21 + + d(p1) 2p1 + dp 2p )
p
 
0
= d0 2 + dk 2 , k
k =1
em que d0 , d1 , d(p1) , dp assumem valores no conjunto
{0, 1}, com dp 6= 0.
Obs. Note novamente a ordenao dos dgitos da direita para
a esquerda.
Como converter da base 10 para a base 2?
Exemplo 3. (2017)10 = (11111100001)2 .
2017 2 = 1008 + 1,
1008 2 = 504 + 0, Em geral:
504 2 = 252 + 0, N 2 = q0 + d0 ,
252 2 = 126 + 0, q0 2 = q1 + d1 ,
126 2 = 63 + 0, q1 2 = q2 + d2 ,
63 2 = 31 + 1, ..
.
31 2 = 15 + 1,
qp3 2 = qp2 + d(p2) ,
15 2 = 7 + 1,
qp2 2 = 1 + d(p1) ,
7 2 = 3 + 1,
1 2 = 0 + dp .
3 2 = 1 + 1,
1 2 = 0 + 1. Portanto:
Da: N = (dp d(p1) d1 d0 )2 .
(2017)10 = (11111100001)2 .
Obs. Organize os restos de cima para baixo para obter a
representao na base 2 da direita para a esquerda.
Representao da parte fracionria na base 10.
Exemplo 4.
(a) (0.27)10 (2 101 + 7 102 ).

(b) (0.003)10 (0 101 + 0 102 + 3 103 ).

(c) (0.721721721 )10 (7 101 + 2 102 + 1 103 +


7 104 + 2 105 + 1 106 + ).

(d) (0.333 )10 (3 101 + 3 102 + 3 103 + ).

Obs. As representaes em (a) e (b) so finitas, enquanto as


representaes em (c) e (d) so infinitas.
Representao da parte fracionria na base 10.
Representao da parte fracionria 0.Q na base 10 com m
dgitos significativos.

0.Q = (0.d1 d2 dm1 dm )10


(d1 101 + d2 102 + + dm1 10(m1) + dm 10m )
m
= dk 10k ,
k =1
em que d1 , d2 , dm1 , dm assumem valores no conjunto
{0, 1, , 8, 9}.

Obs. Note a ordenao dos dgitos da esquerda para direita


(aps o ponto).
Representao da parte fracionria na base 2.
Exemplo 5.
(a) (0.101)2 (1 21 + 0 22 + 1 23 ) = (0.625)10 .

(b) (0.001)2 (0 21 + 0 22 + 1 23 ) = (0.125)10 .

(c) (0.01101010 )2 (0 21 + 1 22 + 1 23 + 0 24 +
1 25 + 0 26 + 1 27 + 0 28 + ).

(d) (0.111 )2 (1 21 + 1 22 + 1 23 + ).

Obs. As representaes em (a) e (b) so finitas, enquanto as


representaes em (c) e (d) so infinitas.

Obs. Representaes infinitas no so exequveis em


mquinas. Isto fora erros de representao de fraes, os
chamados erros de mquina.
Representao da parte fracionria na base 2.
Representao da parte fracionria 0.Q na base 2 com m
dgitos significativos.

0.Q = (0.d1 d2 dm1 dm )2


(d1 21 + d2 22 + + dm1 2(m1) + dm 2m )
m
= dk 2k ,
k =1
em que d1 , d2 , dm1 , dm assumem valores no conjunto {0, 1}.

Obs. Note novamente a ordenao dos dgitos da esquerda


para direita (aps o ponto).
Como converter uma frao na base 10 para a
base 2?
Exemplo 6(a). (0.1875)10 . Em geral:
0.1875 2 = 0.3750 + 0, 0.Q 2 = 0.q1 + d1 ,
0.375 2 = 0.750 + 0, 0.q1 2 = 0.q2 + d2 ,
0.75 2 = 0.50 + 1, 0.q2 2 = 0.q3 + d3 ,
0.50 2 = 0.0 + 1. ..
.
Da: (0.1875)10 = (0.0011)2 .
com dk = 0 ou dk = 1,
Exemplo 6(b). (0.6) 10. k = 1, 2, . . ..
0.6 2 = 0.2 + 1,
Se existir m tal que qm = 0,
0.2 2 = 0.4 + 0,
ento
0.4 2 = 0.8 + 0,
0.Q = (0.d1 d2 dm1 dm )2 .
0.8 2 = 0.6 + 1
.. Se no existir m tal que
.
qm = 0, ento
Da:
0.Q = (0.d1 d2 d3 d4 )2 .
(0.6)10 = (0.10011001 )2 .
Representao de um nmero real numa base .
Seja R um nmero real da forma R = N.Q, em que N 6= 0 a
parte inteira e Q a parte fracionria.

Considere a base sendo um nmero natural com 2.

Representao R na base com p + 1 dgitos na parte


inteira e m dgitos na parte fracionria.
R = (dp d(p1) d1 d0 . d1 d2 dm1 dm )
(d0 0 + d1 1 + + dp1 (p1) + dp p
m
+d1 1 + d2 2 + + dm m ) = dk k ,
k =p
em que dk , k = p, (p 1), , 2, 1, 0, 1, 2, , (m 1), m
assumem valores no conjunto {0, 1, , 1}.

Obs. Lembre que representaes infinitas provocam os


chamados erros de mquina. Neste caso substitui-se o
nmero exato por uma aproximao.
Representao de nmeros reais na base 2.
Exemplo 7.
(a) (11011.101)2 (1 20 + 1 21 + 0 22 + 1 23 + 1 24
+1 21 + 0 22 + 1 23 ) = (27.625)10 .
(b) (11110.001)2
(0 20 + 1 21 + 1 22 + 1 23 + 1 24
+0 21 + 0 22 + 1 23 ) = (30.125)10 .
(c) (10.1001 1001 )2 (0 20 + 1 21
+1 21 + 0 22 + 0 23 + 1 24
+1 25 + 0 26 + 0 27 + 1 28 + )
= (2.59765625...)10 .

Obs. Como (0.6)10 = (0.1001 1001 )2 , no item (c) se


usarmos 8 dgitos significativos aps a vrgula temos uma
aproximao do nmero (2.6)10 dada por (2.59765625)10 .
Representao em Ponto Flutuante.
Seja x 6= 0 um nmero real dado e uma base de numerao
escolhida. A representao de x em ponto flutuante
normalizada na base
x = d e
sendo que a mantissa d um nmero em ponto fixo da forma
t
d= dk k ,
k =1
em que dk , k = 1, . . . n so nmeros inteiros (os dgitos
significativos), com dk {0, 1, . . . , 1}, porm d1 6= 0, e t
o nmero de dgitos significativos.
O expoente e um nmero inteiro entre I e S, sendo I o limite
inferior e S o limite superior para e.
Simbolicamente:  
t
x = 0.d1 d2 dt e dk k e, d1 6= 0 .
k =1
Representao em Ponto Flutuante.
Simbolicamente, se x 6= 0 ento
x = d e 0.d1 d2 dt e , d1 6= 0 .
Exemplo 8. Considere = 10; t = 3; I = 2 e S = 2.
Represente os seguintes nmeros, dados na base 10, neste
sistema de ponto flutuante normalizado.
(a) x = 0.35. Devemos escrever x como 0.d1 d2 d3 10e , com
d1 6= 0.
Mas, isto j est satisfeito, pois 0.35 = 0.35 100 .
Da, d1 = 3 6= 0, d2 = 5, e = 0 e a representao deste x neste
sistema de ponto flutuante +0.350 100 .
(b) x = 5.172. Note que x possui uma parte inteira. Da,
5.172 = 0.5172 101 , isto , d1 = 5 6= 0 e e = 1. Como s
podemos usar t = 3 dgitos significativos, ento a
representao deste x neste sistema de ponto flutuante
0.517 101 , o que significa que um erro de aproximao
est sendo cometido, pois 0.517 101 = 5.176=5.172 .
Representao em Ponto Flutuante.
Simbolicamente, se x 6= 0 ento
x = d e 0.d1 d2 dt e , d1 6= 0 .
Exemplo 8 (cont.). Considere = 10; t = 3; I = 2 e S = 2.
Represente os seguintes nmeros, dados na base 10, neste
sistema de ponto flutuante normalizado.
(c) x = 0.0123.
Note que, 0.0123 = 0.123 101 , isto , d1 = 1 e e = 1.
Assim, a representao deste x neste sistema de ponto
flutuante +0.123 101 .
(d) x = 5391.3.
Aqui temos: 5391.3 = 0.53913 104 , isto , d1 = 5 e e = 4.
Como e > S este x no representvel neste sistema de
ponto flutuante (overflow).
(f) x = 0.0003 = 0.3 103 , isto , d1 = 3 e e = 3.
Como e < I, este x tambm no representvel neste
sistema de ponto flutuante (underflow).
Representao em Ponto Flutuante.
Simbolicamente, se x 6= 0 ento
x = d e 0.d1 d2 dt e , d1 6= 0 .
Exemplo 9. Considere = 2; t = 3; I = 1 e S = 2. Represente
os seguintes nmeros, dados na base 10, neste sistema de
ponto flutuante normalizado.
Devemos ter: x = 0.d1 d2 d3 2e . Como = 2 devemos ter
d1 = 1 6= 0, d2 {0, 1}, d3 {0, 1} e e {1, 0, 1, 2}.
(a) x = 0.25. Note que, (0.25)10 = (0.01)2 = 0.1 21 , isto ,
d1 = 1 6= 0 e e = 1.
Logo, a representao deste x neste sistema de ponto
flutuante +0.100 21 .
(b) x = 3.5.
Aqui: (3.5)10 = (11.1)2 = 0.111 22 , isto , d1 = 1 6= 0 e e = 2.
Como 210 = (10)2 , a representao deste x neste sistema de
ponto flutuante +0.111 210 .
Representao em Ponto Flutuante.
Simbolicamente, se x 6= 0 ento
x = d e 0.d1 d2 dt e , d1 6= 0 .
Exemplo 9 (cont.). Considere = 2; t = 3; I = 1 e S = 2.
Represente os seguintes nmeros, dados na base 10, neste
sistema de ponto flutuante normalizado.
Devemos ter: x = 0.d1 d2 d3 2e . Como = 2 devemos ter
d1 = 1 6= 0, d2 {0, 1}, d3 {0, 1} e e {1, 0, 1, 2}.
(c) x = 0.125.
Aqui: (0.125)10 = (0.001)2 = 0.1 22 , isto , d1 = 1 6= 0 e
e = 2.
Como e < I = 1, temos underflow (no representvel).
(d) x = 4.
Note que, (4)10 = (100)2 = 0.1 23 , isto , d1 = 1 6= 0 e e = 3.
Como e > S = 2, temos overflow (no representvel).
Representao em Ponto Flutuante.
Simbolicamente, se x 6= 0 ento
x = d e 0.d1 d2 dt e , d1 6= 0 .
Exemplo 9(cont.). Considere = 2; t = 3; I = 1 e S = 2.
Represente os seguintes nmeros, dados na base 10, neste
sistema de ponto flutuante normalizado.
Devemos ter: x = 0.d1 d2 d3 2e . Como = 2 devemos ter
d1 = 1 6= 0, d2 {0, 1}, d2 {0, 1} e e {1, 0, 1, 2}.
(e) x = 0.3. Note que,
(0.3)10 = (0.0 1001 1001 )2 = (0.1001 1001 ) 21 , isto
, d1 = 1 e e = 1.
Como devemos ter apenas trs dgitos, este nmero no
representvel neste sistema de ponto flutuante.
Tomando apenas os trs primeiros dgitos, ento temos uma
aproximao de x dada por 0.100 21 = (0.0100)2
= 0 21 + 1 14 + 0 18 + 0 16
1 1
+ 0 32 = (0.25)10 6=(0.3)10 .
Representao em Ponto Flutuante.
Exemplo 10. Considere o o mesmo sistema de ponto flutuante
do Exemplo 9 com = 2; t = 3; I = 1 e S = 2, isto ,
F (2, 5, 1, 2).
O menor nmero real positivo representvel deve ter d1 = 1, os
demais dgitos zero e o menor expoente possvel e = I, isto ,
m = 0.100 21 = (0.010)2 = 0 21 + 1 41 = (0.25)10 .
O maior nmero real positivo representvel deve ter todos os
dgitos mximos e o maior expoente possvel e = S, isto ,
M = 0.111 2(10)2 = (11.1)2 = 1 21 + 1 20 + 1 12 = (3.5)10 .
Lembre que no Exemplo 9(c), com x = (0.125)10 , e no
Exemplo 9(d), com x = (4)10 , tivemos situaes de underflow
e overflow, respectivamente. J no Exemplo 9(e), com
x = (0.3)10 , tivemos um truncamento/aproximao.
Representao em Ponto Flutuante.
Num sistema de ponto flutuante F ( , t, I, S) vale:
Apenas um nmero finito de nmeros reais so representveis
exatamente.
H um menor nmero real (em valor absoluto) m que
representvel exatamente.
H um maior nmero real (em valor absoluto) M que
representvel exatamente.
H infinitos nmeros reais entre m e M que no so
representveis exatamente, mas que podem ser aproximados
e ento suas aproximaes serem representveis.
H infinitos nmeros reais externos ao intervalo [m , M] que
no so representveis, por causarem underflow ou
overflow.
Representao em Ponto Flutuante.
Exemplo 11. Determinemos todos os nmeros reais que so
representveis exatamente no sistema do Exemplo 10 em
que F (2, 3, 1, 2), i. , = 2, t = 3, I = 1 e S = 2.
J sabemos que m = (0.25)10 e que M = (3.5)10 . Tambm
sabemos que o zero representvel em qualquer sistema
(basta tomar a mantissa nula e e = I).
Como t = 3, as possveis mantissas no nulas so: (0.100)2
(0.101)2 , (0.110)2 e (0.111)2 .
Como I = 1 e S = 2, os possveis expoentes so: 1, 0, 1 e 2.
Assim, os nmeros positivos com representao exata so:
(0.100)2 21 = 21 21 = (0.25)10 = m ,
(0.100)2 20 = 12 20 = (0.5)10 ,
(0.100)2 21 = 12 21 = (1.0)10 ,
(0.100)2 22 = 12 22 = (2.0)10 ,
Representao em Ponto Flutuante.
Exemplo 11 (cont,). Determinemos todos os nmeros reais
que so representveis exatamente no sistema do Exemplo
10 em que F (2, 3, 1, 2), i. , = 2, t = 3, I = 1 e S = 2.
(0.101)2 21 = ( 12 + 18 ) 21 = 0.625 21 = (0.3125)10 ,
(0.101)2 20 = ( 12 + 81 ) 20 = 0.625 20 = (0.625)10 ,
(0.101)2 21 = ( 12 + 81 ) 21 = 0.625 21 = (1.25)10 ,
(0.101)2 22 = ( 12 + 81 ) 22 = 0.625 22 = (2.5)10 ,

(0.110)2 21 = ( 12 + 14 ) 21 = 0.75 21 = (0.375)10 ,


(0.110)2 20 = ( 12 + 41 ) 20 = 0.75 20 = (0.75)10 ,
(0.110)2 21 = ( 12 + 41 ) 21 = 0.75 21 = (1.5)10 ,
(0.110)2 22 = ( 12 + 41 ) 22 = 0.75 22 = (3.0)10 ,
Representao em Ponto Flutuante.
Exemplo 11 (cont,). Determinemos todos os nmeros reais
que so representveis exatamente no sistema do Exemplo
10 em que F (2, 3, 1, 2), i. , = 2, t = 3, I = 1 e S = 2.
(0.111)2 21 = ( 12 + 14 + 18 ) 21 = (0.4375)10 ,
(0.111)2 20 = ( 12 + 41 + 18 ) 20 = (0.875)10 ,
(0.111)2 21 = ( 12 + 41 + 18 ) 21 = (1.75)10 ,
(0.111)2 22 = ( 12 + 41 + 18 ) 22 = (3.5)10 = M .
Portanto, temos apenas 33 nmeros reais representveis
exatamente neste sistema. So eles: 0.0 e
0.25, 0.3125, 0.375, 0.4375,
0.5, 0.625, 0.75, 0.875,
1.0, 1.25, 1.5, 1.75,
2.0, 2.5, 3.0, 3.5.

Вам также может понравиться