Para trabalhar com a parte fracionária de forma satisfatória, usa-se a representação por vírgula flutuante.
Essa representação baseia-se no deslocamento da vírgula de forma que se obtenha um número menor ou próximo de 1. Esse deslocamento é feito por meio de notação científica. Esclarecendo: o número 25,456 em notação corresponde ao 0,25456 x 102.
O exemplo acima tinha como base a decimal, no entanto o computador trabalha com a base 2 (binários – 0 e 1). Então um número binário 11,011 em notação corresponde ao 0,11011 x 22. Esse processo de transcrever um número em notação científica recebe o nome de normalização, portanto 0,11011 x 22 está normalizado.
De forma geral, representa-se um número em vírgula flutuante da seguinte forma:
+- M X B+-e
Onde:
M é a mantissa (parte fracionária)
B é a base
e é o expoente
Esquematicamente tem-se [1]:
Desta forma é possível cobrir um largo espectro de números, maximizando o número de bits significativos e consequentemente a precisão da aproximação. Esta forma de representação foi criada por Konrad Zuse para os seus computadores Z1 e Z3.
O número de bits alocados para representar a mantissa e o expoente depende da norma utilizada.
Para obter o número em vírgula flutuante converte-se o número para a base na qual será armazenado, normaliza-o e por fim separa-se mantissa, expoente e sinais.
Exemplo[2]:
Assumindo:
1 bit para o sinal do número
1 bit para o sinal do expoente
4 bits para o expoente
10 bits para a mantissa
Represente o número 5,7510 em vírgula flutuante. O número em questão encontra-se na base 10, portanto é preciso convertê-lo para binário (base 2), base entendida pelo computador. 5,7510 => 101,112
Normalizando tem-se: 0,10111 x 23
Separando sinais, mantissa e expoente tem-se:
Sinal do número: (+) 0
Sinal do expoente: (+) 0
Expoente: 011 (3)
Mantissa: 10111
Portanto tem-se: 00001100000101112