representaÇÃo binÁria e conversÃo itens adicionais ou redundantes do capítulo sobre conversão...
TRANSCRIPT
REPRESENTAÇÃO BINÁRIA E CONVERSÃO
Itens adicionais ou redundantes do capítulo sobre conversão e erros
172
Como é representado um número decimal – notação
posicional
21012 10610710710510276.257
Veja as potências da base (base 10).Depois da vírgula decimal, os expoentes da base são: -1, -2, -3, -4, ...Isto ainda não é a representação dentro do computador
04/11/23
3
Base 2 – notação posicional
1875.11
)21212020(
)21212021()0011.1011(
10
4321
0123
2
Na base 2, depois do ponto binário, os expoentes da base 2 são: -1, -2, -3, -4, -5, ....Isto não é representação dentro do computador
04/11/23 17
4
Converter inteiros de base 10 para representação binária
Tabela 1 Conversão de um inteiro de base 10 para representação binária. Exemplo converter o número 11 em base decimal para base binária.
Quociente Resto
11/2 5
5/2 2
2/2 1
1/2 0
01 a
11 a
20 a
31 a
Portanto,
2
2012310
)1011(
)()11(
aaaa
04/11/23 17
5
Início
Entrada(N)10
i = 0
Dividir N por 2 para ter o quociente Q e resto R
ai = R
Q = 0?
n = i(N)10 = (an. . .a0)2
Fim
Inteiro N a ser convertido para o formato binário
i=i+1, N=Q
Não
Sim
Conversão de número inteiro de base 10 em base binária
04/11/23 17
176
NúmeroNúmero
depois do ponto
decimal
Número depois do
ponto decimal
0,375 0.3750.75 0.751.5 0.51.0 0.0
Tabela 2. Conversão de fração de base 10 para representação binária do número decimal fracionário 0,1875.
10 a20 a31 a41 a
Portanto,
2
2432110
)0011.0(
)()1875.0(
aaaa
21875.0 2375.0 275.0
25.0
Conversão de decimal fracionário para binário
04/11/23
177
Início
Entrada (F)10
Multiplicar F por 2 para obter o número S antes da decimal; e T depois da decimal T
ai = R
É T =0?
n = i(F)10 = (a-1. . .a-
n)2
Fim
Fração F a ser convertida para formato binário
Não
Sim
T F1,ii
1i
04/11/23
178
Conversão de número de base decimal, com parte inteira e
fracionária para binário
210 ?.?1875.11
210 )1011()11(
210 )0011.0()1875.0( Parte fracionária
Ajuntando as partes:
210 )0011.1011()1875.11(
Parte inteira
Converter separadamente a parte inteira e fracionária
04/11/23
179
Nem todos os números fracionários decimais podem ser representados
exatamente
NúmeroNúmero
depois da decimal
Número antes da decimal
0.6 0.61.2 0.20.4 0.40.8 0.81.6 0.6
Tabela 3. Conversão de fração decimal para representação binária. Exemplo para a fração decimal 0,3 .
23.0 26.0 22.0 24.0 28.0
10 a
21 a30 a
40 a
51 a
28125.0)01001.0()()3.0( 225432110 aaaaa
Veja que o 0.6 vai repetir periodicamente
04/11/23
1710
Uma outra forma de ver a conversão
Converter para base 2
101875.11
2
0123
013
13
310
1011
21212021
222
122
3211
A maior potência de 2 que cabe em 11 é 2x2x2
04/11/23
1711
2
4321
43
310
0011.
21212020
22
0625.021875.0
210 0011.10111875.11
O maior fracionário que cabe em 0,1875 é 0,125 = 2^(-3)
Ajuntando as duas partes, tem-se:
O maior fracionário que cabe em 0,0625 é 0,0625 = 2^(-4)
Conversão da parte fracionária
04/11/23
ARITMÉTICA DE PONTO FLUTUANTE
Como se faz no computador
Seja x um número qualquer na base em aritmética de ponto flutuante de t dígitos:
x = ±(.d1 d2 ... dt) e
Onde: (i) ±(.d1 d2 ... dt) e é uma fração na base
(ii) dj {0,1,2,..., -1}
(iii) e [m, M]
(iv) t = número máximo de dígitos da mantissa
04/11/2312 17
Um número não pode ser representado se o expoente “e”(de beta) se estiver fora dos limites m e M.
“Underflow” se e < m
“Overflow” se e > M
Números cuja representação em aritmética de ponto flutuante de t dígitos extrapolam os t dígitos da
mantissa são armazenados por arredondamento ou por truncamento.
•truncagem: descartar todos os decimais a partir de um específico •arredondamento:
–para cima, descartado para > 5–para baixo, descartado para < 50,57 0,6
0,52 0,5
0,57 0,50,52 0,5
04/11/2313 17
x Representação por
arredondamento
Representação por truncamento
1.25 0.12510 0.12510
10.053 0.101102 0.100102
-238.15 -0.238103 -0.238103
2.71828 0.272101 0.271101
0.000000007 Underflow Underflow
718235.82 Overflow Overflow
Exemplo: Seja um sistema de aritmética de ponto flutuante cuja mantissa tenha t=3 dígitos, base =10, m=-4 e M=4.
Overflow e underflow
04/11/2314 17
Exemplo: Dados:
x = 0.937104
y = 0.127102,
calcule x + y para um sistema em que t=4 (número de dígitos significativos na mantissa) e =10 (base 10 ou decimal).
x + y = 0.9370104 + 0.0013104 = 0.9383104
Operação com ajuste de ponto decimal
04/11/2315 17
16
Propagação de erros 1/2
Exemplo: Suponha-se que as operações a seguir sejam processadas em uma máquina com 4 dígitos significativos e fazendo-se: x1 = 0,3491x104 e x2 = 0,2345x100, tem-se:
(x2 + x1) − x1 == (0,2345x100 + 0,3491x104) − 0,3491x104
= 0,3491x104 − 0,3491x104 = 0,0000
x2 + (x1 − x1) == 0,2345x100 + (0,3491x104 − 0,3491x104)= 0,2345 + 0,0000 = 0,2345
04/11/23 17
17
Propagação de erros 2/2
Os dois resultados são diferentes, quando não deveriam ser, pois a adição é uma operação distributiva.(x2 + x1) − x1 = 0,0000 ex2 + (x1 − x1) = 0,2345 Causa da diferença arredondamento feito na
adição (x2 + x1), cujo resultado tem 8 dígitos
A máquina só armazena 4 dígitos (desprezando os menos significativos)
A propriedade da adição (x1+x2)-x1=x2 (x1-x1) não vale no caso, para matemática com número pequeno de dígitos
04/11/23 17