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
- Converta qualquer decimal para IEEE 754 de 32 bits (single) e 64 bits (double)
- Campos de bits de sinal, expoente e mantissa com cores
- Mostra a palavra hex ao lado da string de bits binária completa
- Informa o valor armazenado exato e o erro de arredondamento em relação à sua entrada
- O modo reverso decodifica um padrão hex ou string de bits de volta em um decimal
- Lida com Infinity, NaN, zero negativo e números subnormais (denormais)
- Exibe o expoente enviesado e não enviesado para que você leia a escala
- Roda inteiramente no seu navegador — os números nunca saem do seu dispositivo
Como usar Conversor IEEE 754
- Mantenha Decimal → IEEE 754 selecionado e digite um número como 0.1
- Escolha 32 bits ou 64 bits para ver os bits de precisão simples ou dupla
- Leia os campos de sinal, expoente e mantissa, o hex e o erro de arredondamento
- 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
- Dois números que deveriam ser iguais comparam como diferentes no código. — O arredondamento difere por operação, então compare floats com uma pequena tolerância (epsilon) em vez de ==, ou passe para 64 bits para mais precisão.
- Um valor hex colado decodifica para Infinity ou NaN inesperadamente. — Um campo de expoente todo em uns significa Infinity (mantissa zero) ou NaN (mantissa diferente de zero). Verifique também a largura — 8 dígitos hex para 32 bits, 16 para 64 bits.
- 0.1 + 0.2 não é igual a 0.3 no seu programa. — Cada valor é arredondado primeiro para o float binário mais próximo, então as somas diferem. Converta 0.1, 0.2 e 0.3 aqui para ver os valores armazenados exatos por trás da incompatibilidade.
- Um número muito pequeno é rotulado como 'subnormal'. — Abaixo do menor expoente normal, os floats descartam o 1 inicial implícito e usam a codificação subnormal (denormal), trocando precisão para chegar mais perto de zero.
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