Considere o sistema de ponto flutuante normalizado expresso por
e resolva os itens a seguir:
e) apresente uma operação elementar cujo resultado esteja na região de underflow.
e) apresente uma operação elementar cujo resultado esteja na região de underflow.
Passo 1
Beleza, vamos começar entendendo o que o enunciado está pedindo. Temos um sistema de ponto flutuante normalizado chamado
. Isso significa que estamos trabalhando com base 2, com 3 bits para a mantissa (ou significando), um expoente mínimo de -1 e um máximo de 2. Nosso objetivo aqui é encontrar uma operação simples que, ao ser realizada dentro desse sistema, produza um resultado que caia na região de underflow. Underflow acontece quando o resultado de uma operação é tão pequeno que não pode ser representado no sistema de ponto flutuante usado.
Passo 2
Primeiro, vamos relembrar o que é o sistema de ponto flutuante normalizado. Nesse sistema, um número é representado como:
onde:
-
é a mantissa, normalizada para que , -
é o expoente, que deve estar entre os valores mínimo e máximo definidos (neste caso, ).
A menor representação normalizada que podemos ter nesse sistema é quando
e
, ou seja:
Qualquer número menor que 0.5 não pode ser representado como um número normalizado nesse sistema, entrando assim na região de underflow.
Passo 3
Agora, para encontrar uma operação que resulte em underflow, precisamos que o resultado seja menor que 0.5 em valor absoluto. Uma maneira simples de conseguir isso é multiplicar dois números que, individualmente, não são menores que 0.5, mas cujo produto seja.
Vamos considerar dois números normalizados no nosso sistema:
Passo 4
Realizando a multiplicação desses dois números:
Aqui, 0.25 é menor que 0.5, o que significa que o resultado está na região de underflow, pois não pode ser representado como um número normalizado no nosso sistema
.
Resposta
Uma operação elementar que resulta em underflow é a multiplicação de 0.5 por 0.5, ou seja: