Seja
a representação de um sistema de ponto flutuante onde
é a base do sistema,
é o número de dígitos da mantissa e
e
são respectivamente o menor e o maior expoente.
Dado o sistema de ponto flutuante
, obtenha a representação de número de ponto flutuante normalizado para os seguintes números:
0.024712
Dado o sistema de ponto flutuante
0.024712
Passo 1
O enunciado pede: dado o sistema de ponto flutuante
, obter a representação normalizada em ponto flutuante do número
.
Informações fornecidas:
- base:
; - número de dígitos da mantissa:
(ou seja, a mantissa terá exatamente 3 algarismos significativos); - menor expoente:
; - maior expoente:
; - número a representar:
.
Passo 2
O que significa “representação normalizada” neste contexto? Vou explicar passo a passo, bem devagarinho.
- Uma representação normalizada em base
e com dígitos tem a forma
onde:
-
é o primeiro (e não-nulo) dígito da mantissa, logo (no nosso caso, ); - cada
é um dígito na base (aqui ); - a mantissa tem exatamente
algarismos significativos (aqui , então mantissa com 3 dígitos: ); -
é o expoente inteiro, que deve satisfazer (aqui ).
Explicando em palavras: normalizar significa deslocar a vírgula decimal para que o primeiro dígito da mantissa seja não-zero, e então ajustar o expoente para compensar o deslocamento.
Passo 3
Vamos normalizar
. Primeiro escrevo o número em notação científica (base 10) com o primeiro dígito não nulo antes do ponto decimal:
Deslocando a vírgula duas posições para a direita:
Aqui eu movi a vírgula de
para obter
, então o expoente é
. Note que agora a mantissa tem primeiro dígito
, que é não-nulo — está normalizado nesse sentido.
Passo 4
Agora precisamos ajustar a mantissa para ter exatamente
dígitos significativos. Existem duas convenções comuns:
- truncamento (chopping): simplesmente corta os dígitos extras depois dos
dígitos; - arredondamento para o mais próximo (round-to-nearest): ajusta o último dígito com base nos dígitos seguintes.
Se o enunciado não especifica, eu escolho aqui o arredondamento para o mais próximo porque é a prática mais comum em representações reais (reduz o erro médio). Vou também comentar o caso do truncamento quando for pertinente. No entanto, neste número específico os dois dão o mesmo resultado, como se verá.
Passo 5
Aplicando a regra: a mantissa atual é
. Queremos 3 algarismos significativos, ou seja, formar
=
.
- Os três primeiros dígitos significativos de
são , então a mantissa “candidata” é . - Para arredondar, olhamos o próximo dígito (o quarto algarismo significativo), que é
. Como , não incrementamos o último dígito: o arredondamento deixa . - Pelo truncamento (chopping), também cortaríamos após os três dígitos dando
.
Portanto ambos os métodos (arredondamento e truncamento) produzem a mesma mantissa neste caso:
.
O expoente permanece
. Verificamos a faixa:
, logo o expoente está dentro do intervalo permitido e o número é representável como um número normalizado no sistema dado.
Passo 6
Concluindo, a representação normalizada em
é
(força: você já fez a parte mais chata; esse tipo de conversão fica bem automático depois de alguns exemplos — vai dar certo na prova!)