Conversor de Ponto Flutuante IEEE 754

Converta decimais para IEEE 754 de 32 e 64 bits e de volta — com os bits de sinal, expoente e mantissa, hex, valor armazenado exato e erro de arredondamento, tudo no seu navegador.

O Conversor IEEE 754 roda inteiramente no seu navegador usando APIs numéricas padrão. Os decimais, hex e padrões de bits que você converte ficam no seu dispositivo e nunca são enviados à ArrayKit.

Abrir o Conversor de Base Numérica

Sobre Conversor IEEE 754

O Conversor IEEE 754 transforma um número decimal em sua representação exata de ponto flutuante de 32 bits (single) e 64 bits (double). Ele mostra o bit de sinal, o expoente enviesado e a mantissa como campos de bits separados e coloridos, além da palavra hexadecimal, o valor exato que os bits realmente armazenam e o erro de arredondamento entre o que você digitou e o que a máquina guarda. Como o binário não consegue representar a maioria das frações decimais, valores como 0.1 desviam por uma quantidade minúscula — esta ferramenta torna esse desvio visível. Trabalhe também no sentido contrário: cole um padrão hex ou uma string de bits bruta e recupere o decimal que ele decodifica. Foi feita para desenvolvedores depurando a precisão de floats, comparando float32 com float64 ou inspecionando Infinity, NaN e denormais. Cada conversão roda localmente no seu navegador; os números que você insere nunca saem do seu dispositivo.

Recursos

Como usar Conversor IEEE 754

  1. Mantenha Decimal → IEEE 754 selecionado e digite um número como 0.1
  2. Escolha 32 bits ou 64 bits para ver os bits de precisão simples ou dupla
  3. Leia os campos de sinal, expoente e mantissa, o hex e o erro de arredondamento
  4. Mude para IEEE 754 → Decimal e cole um padrão hex ou binário para decodificá-lo de volta

Exemplo

Entrada

0.1  (as float32)

Saída

hex:            0x3dcccccd
stored value:   0.10000000149011612
exact value:    0.100000001490116119384765625
rounding error: 1.4901161193847656e-9

0.1 não tem forma binária exata, então o float32 armazena um valor ligeiramente maior que 0.1.

Erros comuns e solução de problemas

Perguntas frequentes

Por que 0.1 não é armazenado exatamente em IEEE 754?
0.1 é uma fração periódica em binário, assim como 1/3 é em decimal, então não pode ser escrito em um número finito de bits. O conversor o arredonda para o valor representável mais próximo e mostra o erro de arredondamento restante.
Qual é a diferença entre ponto flutuante de 32 bits e 64 bits?
32 bits (single / float) usa um expoente de 8 bits e mantissa de 23 bits para cerca de 7 dígitos decimais de precisão. 64 bits (double) usa 11 e 52 bits para cerca de 15 a 16 dígitos. Alterne a precisão para comparar o mesmo número em ambos.
Como leio os campos de sinal, expoente e mantissa?
O primeiro bit é o sinal (0 positivo, 1 negativo). Os 8 ou 11 bits seguintes são o expoente, armazenado com um viés de 127 ou 1023. Os 23 ou 52 bits restantes são a mantissa — a fração após um 1 inicial implícito para números normais.
Como Infinity, NaN e zero negativo são codificados?
Um expoente todo em uns com mantissa zero é ±Infinity; com mantissa diferente de zero é NaN. O zero negativo é todo zeros exceto o bit de sinal. A ferramenta rotula cada um desses casos especiais conforme você os insere.
Posso converter um valor de float em hex de volta para um decimal?
Sim. Mude para IEEE 754 → Decimal, escolha Hex ou Binário e cole o padrão. A ferramenta reconstrói o sinal, o expoente e a mantissa e mostra o decimal exato que os bits representam.
O que é um número subnormal (denormal)?
Quando o campo de expoente é todo zeros mas a mantissa não é, o número é subnormal: ele descarta o 1 inicial implícito para representar valores menores que o menor float normal, com precisão reduzida. A ferramenta sinaliza esses automaticamente.

Ferramentas relacionadas

Todas as ferramentas de ArrayKit