Números, operações de bits e unidades

Conversor IEEE 754Veja o valor realmente armazenado

Compare um decimal com o valor armazenado ou interprete uma palavra hexadecimal ou binária completa.

Conversor IEEE 754

Entrada

A entrada é processada neste navegador e não é enviada a um servidor.

O decimal usa ponto e expoente e/E opcional. Hexadecimal: 8/16 dígitos; binário: 32/64 bits. Palavras aceitam 0x/0b, espaços e tabulações.

Resultados

Decimal curto · 9 / 17 algarismos significativos

0.100000001

Normal

Bit de sinal · Bits: 1

0

Expoente armazenado · Bits: 8

01111011

Campo de fração · inteiro sem sinal · Bits: 23

10011001100110011001101
Precisão
32 bits · binary32
Representação de entrada
Valor decimal
Palavra hexadecimal
0x3DCCCCCD
Palavra binária
00111101110011001100110011001101
Bit de sinal
0
Expoente armazenado
123
Expoente efetivo
-4
Campo de fração · inteiro sem sinal
5033165
Bit inicial implícito
1
Fórmula do valor exato
13421773 × 2^-27
Resultado da conversão
Mais próximo, empate para o par
Valor armazenado exato · decimal
0.100000001490116119384765625
Erro com sinal · armazenado − entrada
0.000000001490116119384765625

Opções

Arredondamento direto à precisão escolhida: mais próximo, empate para o par. Mudar a precisão ou representação reinterpreta o texto. Até 1024 caracteres; expoente decimal explícito −4096…4096.

Análise concluída.

O Conversor IEEE 754 ajuda a entender uma diferença escondida pela exibição curta do depurador. Se a tela mostra 0.1, consulte a expansão decimal completa para descobrir o número realmente armazenado e seu desvio em relação à entrada.

Converter um número novo e ler bits existentes são tarefas diferentes. Na primeira pode haver arredondamento; na segunda, o padrão deve permanecer intacto. Ao usar uma captura de memória, confira a precisão e organize os bytes antes de fornecer a palavra.

Por que usar este Conversor IEEE 754

O mesmo alvo em duas escalas

O Conversor IEEE 754 arredonda o decimal exato separadamente em precisão simples e dupla. Para 0.1, binary32 armazena 0.100000001490116119384765625. Binary64 chega mais perto, mas também não é exato. O sinal do erro mostra de que lado do alvo ficou o valor armazenado.

A mesma posição alvo é projetada em duas grades com espaçamentos diferentes, com círculos nos pontos representáveis mais próximos.

Preserve os detalhes de cada NaN

7FC00001 e 7FC00002 são NaNs silenciosos, mas seus payloads são 1 e 2. A leitura direta dos bits mantém essa diferença, o sinal e o bit quiet. Assim, informações de uma captura de registrador não desaparecem só porque ambos aparecem como NaN na tela.

Dois padrões NaN com marcas de payload diferentes mantêm suas respectivas marcas nas saídas.

Defina o significado da entrada

01

Separe número e padrão de bits

A página começa com 0.1 em decimal e binary32. Mudar para hexadecimal altera a interpretação do texto; não converte o próprio texto. Cole uma palavra completa com o bit mais significativo à esquerda e a largura correta.

02

Confira todas as casas

A exibição curta usa 9 algarismos significativos em binary32 e 17 em binary64. O campo exato mantém toda a expansão decimal. O erro é o valor armazenado menos a entrada: se for negativo, o valor armazenado é menor que o alvo.

03

Use os exemplos com prévia

Exemplo abre cinco opções, incluindo zero negativo e NaN com payload. Aplicar substitui a entrada, e Desfazer recupera entrada e resultado. O modo automático espera 350 ms; desative-o para usar Analisar ou Ctrl/Cmd + Enter.

Dos campos ao valor armazenado

Identifique sinal, expoente e fração

A divisão é de 1/8/23 bits em binary32 e 1/11/52 em binary64. Expoente armazenado, efetivo e bit inicial implícito aparecem separados. O bit implícito vale 1 nos números normais e 0 nos subnormais, exigindo uma interpretação diferente do campo de expoente.

Evite arredondar duas vezes

O texto decimal vira uma fração exata e é arredondado diretamente para o formato escolhido. Uma entrada ligeiramente acima de 1.000000059604644775390625 escolhe o próximo float32. Passar primeiro por double poderia eliminar essa diferença e produzir um resultado incorreto no último bit.

Leve um registro para seus testes

A conversão de float para hexadecimal e a leitura inversa compartilham esta página. A saída preserva todos os bits, inclusive NaNs sinalizadores. O relatório reúne entrada, precisão, campos, valor exato e erro de arredondamento para comparar depuradores ou implementações.

Regras de leitura e arredondamento

Dois formatos e uma regra fixa
Somente binary32 e binary64 são aceitos. A regra escolhe o valor mais próximo e, no empate, o significando cujo bit final é par. Não há meia precisão, bfloat16, precisão estendida, outros modos de arredondamento ou simulação de flags de exceção do hardware.
O tamanho da palavra é obrigatório
Hexadecimal exige 8 ou 16 dígitos; binário, 32 ou 64 bits. Prefixos compatíveis, espaços ASCII e tabulações são permitidos. Outros separadores e tamanhos incorretos são rejeitados. Nenhum zero é acrescentado, nenhum bit é cortado e os bytes não são trocados automaticamente.
Extremos também são resultados
Uma entrada finita muito grande pode virar infinito com sinal. Uma muito pequena pode virar subnormal ou zero com sinal. Isso não é erro de sintaxe. A diferença só é calculada entre entrada decimal finita e resultado finito; uma palavra original não fornece um alvo decimal adicional.
Payload não inclui o bit quiet
O bit mais alto da fração segue a convenção usual: 1 indica quiet. Esse bit fica fora do payload. O texto NaN cria um NaN silencioso canônico com payload zero. Use hexadecimal ou binário para outro padrão; convenções de arquiteturas antigas e suas exceções não são reproduzidas.
Um valor limitado por vez
A entrada aceita até 1024 caracteres e expoente decimal explícito de −4096 a 4096. Use ponto, inclusive em português. Expressões, quebras de linha, arquivos, URLs e lotes não são aceitos. Não há ordem de bytes, botões de bits, navegação por vizinhos, distância ULP ou erro relativo.

Dúvidas sobre o Conversor IEEE 754

Por que o float não guarda 0,1 exatamente?

Um décimo precisa de um fator cinco no denominador; uma fração binária finita tem denominador que é potência de dois. Por isso a expansão binária de 0.1 se repete e precisa ser arredondada. Digite com ponto e veja a expansão completa para identificar o valor armazenado.

O que muda de float para double?

Float costuma corresponder a binary32, com 23 bits de fração armazenados mais o bit implícito dos números normais: 24 bits de precisão. Double corresponde a binary64, com 52 mais um. O expoente passa de 8 para 11 bits. A faixa e o espaçamento melhoram, mas 0.1 continua inexato.

Como interpretar sinal, expoente e mantissa?

Nos números normais, o sinal define positivo ou negativo, subtrai-se 127 ou 1023 do expoente armazenado e acrescenta-se um 1 implícito à fração. Expoente zero usa a regra subnormal. Expoente com todos os bits 1 indica infinito ou NaN, sem aplicar a fórmula normal.

Como aparecem NaN, infinito e zero com sinal?

Expoente todo em 1 com fração zero representa infinito; com fração diferente de zero, NaN. Zero com sinal tem expoente e fração zero, preservando o sinal. Para NaN, os campos quiet e payload explicam como padrões diferentes podem pertencer à mesma classe.

É possível recuperar o decimal a partir do hexadecimal?

Sim. Escolha a precisão e a entrada hexadecimal, depois cole a palavra completa. Em binary32, 3F800000 representa exatamente 1. Os bits são reinterpretados como ponto flutuante; não se converte o inteiro hexadecimal 1065353216 em um float.

O resultado parece errado?

Confira outro valor limite

Use o Conversor IEEE 754 para conferir uma palavra capturada ou um decimal perto do limite de arredondamento. Altere uma condição por vez e copie o relatório depois que o resultado estiver atualizado.