1. Introdução
O padrão IEEE 754 é o formato no qual quase todas as CPUs representam números não inteiros. Além disso, fabricantes de computadores, desenvolvedores de compiladores de linguagens científicas ou de bibliotecas de funções matemáticas utilizam esse formato na representação de números de ponto flutuante.
Vamos estudar sobre os formatos de precisão única, de 32 bits, e precisão dupla, de 64 bits. Entretanto, há outros formatos de precisão ainda maior que não trataremos neste texto.
2. Formato
Vamos utilizar o formato de precisão simples (32 bits) para demonstrar as partes que compõem o layout do padrão, mostradas na Figura 1.
Figura 1. Layout do formato IEEE 754 de precisão simples.
O formato utiliza 1 bit para representar o sinal, 8 bits para o expoente e 23 bits para a mantissa, que guarda a parte fracionária do número. As seções existentes neste layout são as mesmas presentes no formato de precisão dupla (64 bits), onde possuem mais espaço alocado para elas: expoente tem 11 bits e mantissa tem 52 bits. O tamanho de sinal se mantém em 1 bit.
Para entender como o número é armazenado neste formato, vamos relembrar o conceito de notação científica. Notação científica é uma forma de escrever e representar de forma compacta números muito grandes (10000000000000000) ou muito pequenos (0,00000000000000001). Sendo utilizada para representar valores no sistema decimal, esta notação está baseia-se em potências de 10, que irão multiplicar ou dividir o valor por 10, de acordo com o expoente ao qual o 10 está elevado. Os valores exemplificados anteriormente, em notação científica, ficariam: 1 × 1016 e 1 × 10-17, respectivamente.
Para armazenar os valores no formato IEEE 754, primeiramente, precisamos convertê-los para a base binária. Considere o valor 45,0625. A conversão deste valor para binário se dá em duas etapas: (i) conversão da parte inteira e (ii) conversão da parte fracionária. A conversão de inteiros decimais para binários já foi vista e não vamos nos estender nesse tópico. Assim, 45(10) = 101101(2).
Para converter uma fração decimal para binário, siga o processo descrito a seguir.