Você está na página 1de 15

Cálculo Numérico

Conversão de Bases Numéricas – Parte 2


Aritmética de Ponto Flutuante
08/09/2020
Conversão de Números Reais entre 0 e 1 da
Base Numérica Decimal para Base Binária
• Caso Geral:
Admita que r seja um número real entre 0 e 1 no sistema decimal e
(0,d1d2d3...dj...)2 a sua representação no sistema binário.
Para determinarmos os dígitos binários d1, d2, ..., dj, ... utilizamos o
seguinte algoritmo:
• Passo 0: r1 = r; k = 1
• Passo 1: Calcule 2rk
Se 2rk ≥ 1, faça: dk = 1,
caso contrário, faça dk = 0.
Conversão de Bases Numéricas não decimais
para Base Decimal
• Passo 2: Faça rk+1 = 2rk – dk
Se rk+1 = 0, pare.
Caso contrário:

• Passo 3: k = k + 1.
Retorne ao Passo 1
Conversão de Números Reais entre 0 e 1 da
Base Numérica Decimal para Base Binária
• Exemplo: Conversão do número (0,0625)10 para a base binária.
Aplicando o algoritmo, temos:
k = 1 2r1 = 2 x 0,0625 = 0,1250  d1 = 0 e r2 = 0,125
k = 2 2r2 = 2 x 0,125 = 0,250  d2 = 0 e r3 = 0,25
k = 3 2r3 = 2 x 0,25 = 0,50  d3 = 0 e r4 = 0,5
k = 4 2r4 = 2 x 0,5 =1,00  d4 = 1 e r5 = 0 (pare!)
Temos que:
(0,0625)10 = (0,d1d2d3d4)2 = (0,0001)2
Conversão de Números Reais entre 0 e 1 da
Base Numérica Decimal para Base Binária
• Exercício: Converta do número (0,1)10 para a base binária
Conversão de Números Reais entre 0 e 1 da
Base Numérica Decimal para Base Binária
• Exercício: Converta do número (0,1)10 para a base binária
Aplicando o algoritmo, temos:
k = 1 2r1 = 2 x 0,1 = 0,2  d1 = 0 e r2 = 0,2
k = 2 2r2 = 2 x 0,2 = 0,4  d2 = 0 e r3 = 0,4
k = 3 2r3 = 2 x 0,4 = 0,8  d3 = 0 e r4 = 0,8
k = 4 2r4 = 2 x 0,8 = 1,6  d4 = 1 e r5 = 0,6
k = 5 2r5 = 2 x 0,6 = 1,2  d5 = 1 e r6 = 0,2
k = 6 2r6 = 2 x 0,2 = 0,4  d6 = 0 e r7 = 0,4
k = 7 2r7 = 2 x 0,4 = 0,8  d7 = 0 e r8 = 0,8
k = 8 2r8 = 2 x 0,8 = 1,6  d8 = 1 e r9 = 0,6
k = 9 2r5 = 2 x 0,6 = 1,2  d5 = 1 e r10 = 0,2

Conversão de Números Reais entre 0 e 1 da
Base Numérica Decimal para Base Binária
• De acordo com o algoritmo aplicado, tem-se que: r2 = r6 = r10 = 0,2, que
implica em k de 2 a 5 se repetirão indefinidamente.
• Podemos inferir que (0,1)10 não tem representação binária finita, de modo
que:
(0,1)10 = (0,00011001100110011 … )2

• A partir dessa conclusão, mostre que:


(0,11)10 = (0,00011000010100011110101110000101000111101 … )2
Conversão de Números entre 0 e 1 da Base
Numérica Binária para Base Decimal
• Seja o número (r)2 = (0,d1d2d3...dj...)2. O algoritmo de conversão para
a base decimal segue os passos abaixo:
• Passo 0: r1 = r; k = 1
• Passo 1: Calcule wk = (1010)2 x rk
Seja zk a parte inteira de wk
bk corresponde à conversão de zk para a base 10.
• Passo 2: Faça rk+1 = wk – zk
Se rk+1 = 0, pare.
• Passo 3: k = k + 1
volte ao passo 1
Conversão de Números entre 0 e 1 da Base
Numérica Binária para Base Decimal
• Exercício: Converta o número r1 = (0,000111)2 para a base decimal
Aplicando o algoritmo, obtemos:
w1 = (1010)2 x r1 = (1010)2 x 0,000111 = 1,00011  b1 = 1 e r2 = 0,00011
w2 = (1010)2 x r2 = (1010)2 x 0,00011 = 0,1111  b2 = 0 e r3 = 0,1111
w3 = (1010)2 x r3 = (1010)2 x 0,1111 = 1001,011  b3 = 9 e r4 = 0,011
w4 = (1010)2 x r4 = (1010)2 x 0,011 = 11,11  b4 = 3 e r5 = 0,11
w5 = (1010)2 x r5 = (1010)2 x 0,11 = 111,1  b5 = 7 e r6 = 0,1
w5 = (1010)2 x r5 = (1010)2 x 0,1 = 101  b6 = 5 e r7 = 0

Temos então, r1 = (0,000111)2 = (0,b1b2b3b4b5b6)10 = (0,109375)10


Conversão de Números entre 0 e 1 da Base
Numérica Binária para Base Decimal
• Multiplicações Binárias
0,000111
x1010
0000000
0000111
0000000
0000111___
0001000110  1,00011
Conversão de Números entre 0 e 1 da Base
Numérica Binária para Base Decimal
• Mostre que o número r1 = (0,00101)2 corresponde à representação
numérica 0,15625 na base decimal.
Aritmética do Ponto Flutuante
• Um numero real positivo 𝑥𝑥 pode ser escrito como:

onde 𝑎𝑎𝑖𝑖 e 𝑏𝑏𝑖𝑖 são, respectivamente, os coeficientes da parte inteira e fracionaria


do numero 𝑥𝑥, B é a base numérica.
• Por exemplo,
(1784,381)10 = 1 x 103 + 7 x 102 + 8 x 101 + 4 x 100 + 3 x 10-1 + 8 x 10-2 + 1 x 10-3
Aritmética do Ponto Flutuante
• Representação em Ponto Fixo
Num computador, a representação em ponto fixo de uma palavra
(número) possui 3 campos, sendo eles:
• 1 bit para o sinal
• bits que formam a parte inteira
• bits que formam a parte não inteira (fracionária)
Exemplo: o número (13,75)10 pode ser representado em um sistema de
32 bits (15 bits para a parte inteira e 16 bits para a parte fracionária)
como:
Aritmética do Ponto Flutuante
• Representação de ponto flutuante.
Seja r um número real, sua representação em ponto flutuante é
definida por:
𝑟𝑟 = ± 0, 𝑑𝑑1 𝑑𝑑2 … 𝑑𝑑𝑡𝑡 × 𝛽𝛽 𝑒𝑒
onde: 𝛽𝛽 é a base numérica da operação em máquina;
t é o número de dígitos na mantissa;
0 ≤ 𝑑𝑑𝑗𝑗 ≤ 𝛽𝛽 − 1 , 𝑗𝑗 = 1, … , 𝑡𝑡, 𝑑𝑑1 ≠ 0;
e corresponde ao expoente no intervalo [1, u]
Exemplo: admita uma máquina que opera com o seguinte sistema:
𝛽𝛽 = 10; 𝑡𝑡 = 5; 𝑒𝑒 ∈ [−7,7]
Então, temos que:
0, 𝑑𝑑1 𝑑𝑑2 𝑑𝑑3 𝑑𝑑4 𝑑𝑑5 × 10𝑒𝑒 ; 0 ≤ 𝑑𝑑𝑗𝑗 ≤ 9 , 𝑑𝑑1 ≠ 0, 𝑒𝑒 ∈ [−7,7]
Aritmética do Ponto Flutuante
• A menor representação numérica absoluta (m) nesta máquina será:
𝑚𝑚 = 0,10000 × 10−7 = 10−8

• A maior representação numérica absoluta (M) nesta máquina será:


𝑀𝑀 = 0,99999 × 107 = 9999900

Você também pode gostar