(3.5) - Parte dos computadores utilizados para a resolução de problemas de Engenharia utilizam uma linguagem binária considerando uma cadeia de 64 bits. Sendo você um candidato a futuro engenheiro, mostre que você entende a linguagem usada pelo computador escrevendo o nümero decimal
numa representação em ponto flutuante na base 2 .
a) (0.50) - Normalize o número e represente-o em notação de ponto flutuante na base 2;
b) (0.50) - Calcule o expoente polarizado em precisão simples e o converta para base binária;
c) (2.00) - Converta a mantissa para a base binária usando um número suficiente de algarismos de forma que o erro relativo real seja menor que 0,01 .
d) (0.50) - Desenhe o Diagrama do número armazenado no computador.
a) (0.50) - Normalize o número e represente-o em notação de ponto flutuante na base 2;
b) (0.50) - Calcule o expoente polarizado em precisão simples e o converta para base binária;
c) (2.00) - Converta a mantissa para a base binária usando um número suficiente de algarismos de forma que o erro relativo real seja menor que 0,01 .
d) (0.50) - Desenhe o Diagrama do número armazenado no computador.
Passo 1
O enunciado pede que o número decimal
seja escrito em ponto flutuante na base
. As perguntas são:
- (a) Normalizar o número e representá‑lo em notação de ponto flutuante na base
. - (b) Calcular o expoente polarizado (biased) em precisão simples (IEEE 754 single) e escrevê‑lo em binário.
- (c) Converter a mantissa para base
usando um número suficiente de algarismos de forma que o erro relativo real seja menor que . - (d) Desenhar o diagrama do número armazenado no computador (campos sign/exponent/mantissa).
Informações relevantes dadas e convenções que vou usar:
- O número a converter é
. - Para a parte (b) “precisão simples” significa IEEE 754 single: 1 bit de sinal, 8 bits de expoente com bias
, e 23 bits de fração (mantissa sem o bit implícito). - Vou usar a forma normalizada em base
: . - Método para a parte fracionária: multiplicar repetidamente a parte fracionária por
e registrar a parte inteira (0 ou 1) a cada passo.
Passo 2
Converter a parte inteira
para binário (divisões por
, explicando passo a passo):
-
resto . -
resto . -
resto . -
resto . -
resto . -
resto . -
resto .
Lendo os restos de baixo para cima:
. Ou seja, a parte inteira em binário é
.
Converter a parte fracionária
para binário pelo método de multiplicação por
(vou mostrar os primeiros bits, suficientes para as próximas etapas):
Definindo
e para
, o bit
é
e o novo resto é
.
Fazendo as multiplicações:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
(segue indefinidamente, a expansão binária da fração decimal geralmente não é finita)
Assim os primeiros bits da parte fracionária binária são
ou seja a sequência de bits
.
Passo 3
Normalizar o número (resposta da parte (a)):
A representação binária completa até juntar parte inteira e parte fracionária é
Para normalizar em forma
desloca‑se o ponto binário 6 casas para a esquerda (porque o bit mais significativo de
é
):
Logo a forma normalizada é
Vou explicitar alguns dígitos depois da vírgula binária (usando os bits calculados no passo anterior):
Isto responde (a): a mantissa normalizada começa com
e o expoente é
.
Passo 4
Calcular o expoente polarizado em precisão simples (resposta da parte (b)):
- Para precisão simples (IEEE 754 single) o bias (polarização) é
. - O expoente verdadeiro é
. - O expoente polarizado é
.
Agora converter
para binário com 8 bits:
-
. - Em binário de 8 bits:
.
Portanto o campo expoente (8 bits) será
.
Passo 5
Converter a mantissa e assegurar erro relativo menor que
(resposta da parte (c)):
- Determinar quantos bits são necessários para que o erro relativo seja
.
- Se a mantissa normalizada for
e truncarmos/arreondarmos após bits fracionários, o erro relativo máximo aproximado (para números na faixa ) é da ordem de (mais precisamente menor que ). - Queremos
. Tomando logaritmo em base :
- Logo o menor inteiro
que satisfaz é . Portanto com bits de fração após o ponto binário a representação já dá erro relativo menor que .
- Mostrar a mantissa truncada/arreondada com
bits e calcular o erro relativo real (para confirmar numericamente):
- Do passo 3, os primeiros bits da mantissa após o
são (usando a concatenação dos bits da parte inteira e da parte fracionária): (os seis primeiros vêm dos bits da parte inteira, o sétimo vem do primeiro bit da antiga fração decimal). - Assim a mantissa aproximada com
bits é
Calcule isso em decimal:
- O valor verdadeiro do fator normalizado é
(isto dá exatamente porque e ). - A diferença absoluta é
. - O erro relativo é
que é significativamente menor que
. Portanto
bits são suficientes (e de fato muito seguros).
- Mantissa em precisão simples (campo de 23 bits):
- Para armazenar em single precision precisamos dos
bits de fração (lembrando que o inicial não é armazenado). - Tomando os primeiros
bits fracionários conforme computados no passo 2 (os 6 bits que vêm da parte inteira depois do primeiro 1, seguidos pelos bits da fração decimal) obtemos a sequência (antes de arredondar o último bit):
- O próximo bit (o 24º) é
(veio da continuação da expansão binária), logo para arredondamento para o mais próximo devemos somar no bit menos significativo. Somando ao último bit (que é ) produz sem carry um final. - Assim a mantissa (campo de 23 bits) arredondada fica
Isto significa que, em single precision, a mantissa armazenada (os 23 bits) será
.
Passo 6
Montagem final e diagrama do número armazenado (resposta da parte (d)):
- Bit de sinal: como o número é negativo,
. - Expoente (8 bits, bias 127):
(porque ). - Mantissa (23 bits, arredondada conforme passo anterior):
.
O diagrama (campo a campo) da palavra IEEE 754 single de 32 bits é, em ordem:
- Sign (1 bit):
- Exponent (8 bits):
- Fraction/Mantissa (23 bits):
Escrito junto (32 bits):
Isto completa o diagrama do número armazenado em precisão simples (32 bits).
Resposta
(a)
(b) Expoente polarizado:
. Em binário (8 bits):
(c) Mantissa com precisão suficiente para erro relativo
: com
bits após o ponto:
(erro relativo
).
Mantissa para IEEE 754 single (23 bits, arredondada):
Mantissa para IEEE 754 single (23 bits, arredondada):
(d) Diagrama (IEEE 754 single, 32 bits):
Sign =
Exponent =
Fraction =
Sign =
Exponent =
Fraction =