Conversor IEEE 754 (32 e 64 bits)
Converter
Números de ponto flutuante são guardados como um bit de sinal, um expoente enviesado e uma fração (mantissa), e a diferença entre o que você digita e o que é de fato armazenado é a causa de inúmeros bugs de arredondamento. Este conversor mostra a representação IEEE 754 exata de qualquer número decimal em float32 (simples, 1+8+23 bits, viés 127) e float64 (duplo, 1+11+52 bits, viés 1023): a cadeia de bits colorida, a palavra hex, o expoente sem viés e a mantissa, a categoria do valor (normal, subnormal, zero, infinito, NaN) e o valor realmente armazenado após o arredondamento. Também funciona ao contrário — cole uma palavra hex de 8 ou 16 dígitos e obtenha o número decodificado e seu detalhamento completo. Útil para depurar serialização, shaders e código embarcado, buffers de GPU e perguntas do tipo "por que 0.1 + 0.2 != 0.3?". As entradas especiais Infinity, -Infinity e NaN são aceitas. Tudo roda localmente; nada é enviado.
- Sinal
- 0 (+)
- Expoente
- 123 (2^-4)
- Mantissa
- 1.10011001100110011001101
- Armazenado
- 0.10000000149011612
Arredondado — float32 não pode armazenar este valor exatamente.
- Sinal
- 0 (+)
- Expoente
- 1019 (2^-4)
- Mantissa
- 1.1001100110011001100110011001100110011001100110011010
- Armazenado
- 0.1
float32 = 1 sinal + 8 expoente + 23 fração bits; float64 = 1 + 11 + 52. O viés do expoente é 127 / 1023.
Como usar
- Mantenha 'Decimal → bits' e digite um número (ex.: 0.1, -3.14, 1e10, Infinity, NaN) para ver float32 e float64.
- Leia a divisão sinal / expoente / mantissa, a palavra hex e o valor armazenado; uma nota avisa quando o float32 teve de arredondar.
- Mude para 'Bits → decimal', escolha a precisão e cole uma palavra hex para decodificá-la a um número.
Perguntas frequentes
- Por que o valor armazenado difere do que digitei?
- A maioria das frações decimais não pode ser representada exatamente em ponto flutuante binário. A ferramenta mostra o valor representável mais próximo — ex.: 0.1 em float32 é na verdade 0.100000001490116119384765625. Uma nota de arredondamento aparece sempre que o valor float32 armazenado difere da sua entrada; float64 armazena o mesmo valor que o JavaScript já usa.
- O que significam os bits coloridos?
- Vermelho é o bit de sinal (0 positivo, 1 negativo), azul é o expoente (enviesado: subtraia 127 para float32 ou 1023 para float64 para obter a potência de dois) e verde é a fração/mantissa. Para números normais a mantissa é 1.fração; para subnormais é 0.fração com o expoente mínimo.
- Como infinito, NaN e zero são mostrados?
- Um expoente todo de uns com fração zero é ±infinito; um expoente todo de uns com fração não nula é NaN; expoente e fração todos zeros é ±zero (note o bit de sinal distinto do -0); e um expoente todo zeros com fração não nula é um número subnormal. A categoria é rotulada em cada cartão.
- Qual formato hex a decodificação espera?
- O hex big-endian dos bits crus: 8 dígitos hex para float32 (ex.: 3f800000 = 1.0) e 16 para float64 (ex.: 3ff0000000000000 = 1.0). Um 0x inicial e espaços são ignorados, e a entrada mais curta é preenchida com zeros à esquerda.
Ferramentas relacionadas
Conversor BCD (decimal codificado em binário)
Converte decimal de e para BCD 8421 — nibbles de 4 bits por dígito, bytes hex de BCD empacotado e verificação de validade BCD.
Conversor de código Gray
Converte entre decimal, binário e código Gray (binário refletido), nos dois sentidos, com largura de bits opcional e uma tabela de referência 0-7.
Conversor de Complemento de Dois (8–64 bits)
Insira um valor decimal, hex, binário ou octal e veja seu padrão de bits em complemento de dois de 8/16/32/64 bits, além das leituras com e sem sinal, hex, octal e complemento de um — no seu navegador.
Conversor de Algarismos Romanos
Converta entre algarismos arábicos e romanos de 1 a 3999.
Conversor de Bases Numéricas
Converta números entre binário, octal, decimal e hexadecimal.
Conversor de Unidades
Converta comprimento, peso, temperatura, área, volume, velocidade e tempo.