Conversor float para IEEE-754
O 3,14 em precisão dupla é guardado como 0x40091EB851EB851F: um bit de sinal, onze de expoente e 52 de mantissa, cada parte separada. Decodifique também dumps hexadecimais e reconheça zeros, subnormais, infinitos e NaN de relance. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Valor de entrada
- 3,14
- Largura IEEE-754: 32
- 64
- Direção da conversão
- From decimal
- Largura de precisão
- 64
- Formato de saída
- binary64
- Número de bits
- 64
- Cadeia hex
- 40091EB851EB851F
padrão hex e binário, grátis
O que um número de ponto flutuante guarda de verdade
Quase todos os processadores guardam números decimais no formato padrão de ponto flutuante, que divide uma quantidade fixa de bits em três partes. O bit de sinal diz se o valor é positivo ou negativo. O expoente define a escala e é guardado com um viés fixo para não precisar de sinal próprio. A mantissa guarda os algarismos, com um um inicial implícito nos números normais. A precisão dupla distribui 64 bits em 1, 11 e 52; a simples concentra tudo em 32. O mesmo formato representa, sem marcas extras, o zero com sinal, os subnormais perto de zero, o infinito e NaN.
Quando olhar os bits e erros comuns
Ver o padrão ajuda quando um valor lido de um dump de firmware, de uma captura de rede ou de um arquivo não bate, ou quando você explica em aula por que a aritmética de ponto flutuante se comporta assim. Cole uma palavra de oito dígitos hexadecimais para precisão simples ou de dezesseis para dupla e recupere o decimal e sua categoria. Os erros típicos são escolher a precisão errada, ler os bytes na ordem inversa (aqui vale a ordem usual big-endian, do byte mais significativo ao menos significativo) e esquecer que o expoente guardado inclui o viés. Texto que não é número é recusado, em vez de ser adivinhado.
Casos de uso
Ensinar campos de sinal, expoente e significando
Mostre aos alunos o layout exato de bits para valores de livro, incluindo normais, subnormais, zeros com sinal, infinitos e NaN, com passos determinísticos para folhas de exercício.
Decodificar dumps hex de firmware e capturas
Cole uma palavra hex de oito ou dezesseis dígitos de um dump de memória ou pacote e recupere o float decimal mais a categoria sem escrever um script descartável.
Perguntas frequentes
Como converter um número decimal no padrão hexadecimal de ponto flutuante?
Digite o número, escolha precisão simples ou dupla e você recebe a palavra hexadecimal, a sequência binária e cada parte separada. Por exemplo, 3,14 em precisão dupla vira 0x40091EB851EB851F.
Qual a diferença entre precisão simples e dupla?
A simples (binary32) usa 32 bits: um de sinal, oito de expoente e vinte e três de mantissa. A dupla (binary64) usa 64 bits: um de sinal, onze de expoente com viés 1023 e 52 de mantissa.
Como infinito e NaN são armazenados?
Os dois têm um expoente formado só por uns. Se a mantissa for toda zero, o valor é infinito, positivo ou negativo conforme o bit de sinal; se algum bit da mantissa for um, o valor é NaN.
O que é um número subnormal?
É um valor com o expoente todo zerado e a mantissa diferente de zero. Ele preenche o vão entre o zero e o menor número normal, perdendo precisão; a ferramenta indica essa categoria no resultado.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/fmt/ieee754 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":3.14,"decimal":1}'const res = await fetch("https://api.kit.forhosting.com/fmt/ieee754", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 3.14,
"decimal": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fmt/ieee754",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 3.14,
"decimal": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fmt/ieee754", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":3.14,"decimal":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":3.14,"decimal":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fmt/ieee754", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"value": 3.14,
"decimal": 1
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fmt.ieee754",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_bits | 64 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Um conversor de float IEEE-754 mostra o padrão de bits exato que um computador usa para um número de ponto flutuante. Digite um valor decimal como 3.14 ou menos um, escolha precisão simples binary32 ou dupla binary64, e a ferramenta devolve a palavra hexadecimal canônica, a string binária completa, o bit de sinal, o campo de expoente enviesado, os bits de significando e um rótulo de categoria para números normais, subnormais, zeros com sinal, infinitos e NaN. Você também pode colar um dump hex ou uma string de bits e decodificá-la de volta para decimal, de modo que dumps de firmware, traços de rede e exercícios de livro compartilhem um único layout determinístico. Texto decimal não numérico é rejeitado com invalid_input em vez de ser coagido em silêncio. O caminho é aritmética pura de Worker via DataView—sem rede, sem sementes aleatórias, sem dependência do relógio—assim o executor grátis do navegador e a API pré-paga devolvem o mesmo JSON sempre para a mesma entrada.
O que IEEE-754 binary32 e binary64 armazenam
O mesmo layout codifica valores especiais sem uma etiqueta separada: um expoente de todos uns com significando zero é infinito com sinal; um expoente de todos uns com significando diferente de zero é um NaN; um expoente de todos zeros com significando zero é zero com sinal; um expoente de todos zeros com significando diferente de zero é um número subnormal que preenche a lacuna perto de zero. Engenheiros depurando serialização, professores explicando erro de ponto flutuante e engenheiros reversos lendo dumps hex precisam ver esse layout de forma explícita. IEEE-754 é o formato de intercâmbio que quase toda CPU, GPU e runtime de linguagem moderno usa para aritmética de ponto flutuante binário. Um valor binary32 ocupa trinta e dois bits: um bit de sinal, oito bits de expoente com viés cento e vinte e sete, e vinte e três bits explícitos de significando com um um líder implícito em números normais. Um valor binary64 ocupa sessenta e quatro bits: um bit de sinal, onze bits de expoente com viés mil e vinte e três, e cinquenta e dois bits de significando. Esta capacidade não inventa uma codificação personalizada: usa os getters e setters de float big-endian de DataView da plataforma para que a string hex que você obtém coincida com o dump de memória convencional de uma palavra IEEE big-endian, e a string binária é simplesmente esses bytes expandidos bit a bit do mais significativo ao menos significativo.
Como chamar a API e o que volta
Envie um corpo JSON com pelo menos um campo fonte. Para codificar um decimal, defina value (aliases decimal, number, n) como um número finito ou como Infinity, menos Infinity ou NaN quando esses especiais forem representáveis no seu cliente. Para decodificar um padrão de bits, defina hex como uma string hexadecimal com 0x opcional de até oito dígitos para binary32 ou dezesseis para binary64, ou defina binary (alias bits) como uma string de zeros e uns de comprimento correspondente; padrões mais curtos são preenchidos à esquerda com zeros. precision opcional (aliases format, width) seleciona largura de trinta e dois ou sessenta e quatro bits e aceita nomes como single, double, binary32 e binary64; o padrão é sessenta e quatro. direction opcional (alias mode) força from_decimal, from_hex ou from_binary; auto escolhe pelos campos presentes e prefere value quando vários estão definidos. Em caso de sucesso a resposta inclui value (com formas de string para NaN e infinitos), is_neg_zero, precision, nome de format, bits, hex, hex_prefixed, binary, sign_bit, exponent_bits, mantissa_bits e significand_bits, sign como mais ou menos um, biased_exponent, unbiased_exponent quando definido, category, exponent_bias, source, message e steps ordenados. Validação falha—falta de todo campo fonte, texto decimal não numérico, dígitos hex inválidos ou caracteres não binários—retorna invalid_input e nunca é cobrada. O preço é um US$ 0,002 fixo por requisição bem-sucedida com unidade item e preço marginal unitário zero.
Dicas práticas, limites e buscas relacionadas
Prefira precision sessenta e quatro quando a origem for um número JavaScript ou outro tipo anfitrião binary64, e mude para trinta e dois só quando estiver combinando armazenamento float ou float32 no fio ou em um formato de arquivo. Em ida e volta, codifique um valor e depois decodifique o hex devolvido com a mesma precision e confirme que category e os campos coincidem. Lembre-se de que muitos decimais como um décimo não têm expansão binária finita; o hex que você vê é a codificação IEEE corretamente arredondada, não um bug. Use exemplos de zero com sinal, infinito e NaN ao ensinar especiais: codificar zero e zero negativo produz bits de sinal distintos e as categorias pos_zero e neg_zero embora JSON imprima ambos como zero e a ferramenta exponha is_neg_zero para esse caso. Mantenha os padrões dentro da largura de bits publicada; padrões mais longos que a precision escolhida são rejeitados em vez de truncados, o que mudaria o valor em silêncio. Esta página atende quem busca um conversor float para IEEE-754, um dump hex de precisão simples ou dupla, ou uma ferramenta de padrão de bits de ponto flutuante binário; não é um conversor de ponto flutuante decimal (decimal64), nem uma calculadora de precisão arbitrária, nem uma ferramenta geral hex-para-binário de inteiros—use a capacidade irmã hex-para-binário quando só precisar de conversão de base inteira. Tarefas falhas que retornam invalid_input não consomem saldo pré-pago, o que mantém baratos scripts exploratórios quando alunos enviam strings lixo de propósito.
Casos de integração
Depurar serialização binária de floats
Confirme que um float escrito por um serviço coincide com o hex IEEE-754 que outro serviço lê, tanto em formatos de fio binary32 quanto em dumps adjacentes a JSON binary64.
Perguntas técnicas
O que é IEEE-754 binary64?
Binary64 é o formato de precisão dupla de 64 bits: 1 bit de sinal, 11 bits de expoente (viés 1023) e 52 bits de significando. É o formato usado por JavaScript Number e a maioria das CPUs para valores double.
Como converto um float para hex?
Envie value com o número decimal e precision opcional 32 ou 64. Os campos hex e hex_prefixed da resposta são o padrão de bits IEEE-754 big-endian.
Posso decodificar hex de volta para um float?
Sim. Defina hex como o padrão de bits (0x opcional) e precision para combinar a largura. O value da resposta é o decimal decodificado (ou strings NaN / Infinity quando aplicável).
O que acontece com entrada não numérica?
Texto decimal que não é número retorna invalid_input e não é cobrado. Especiais válidos Infinity, -Infinity e NaN são aceitos como codificações IEEE.
O conversor IEEE-754 é grátis?
A ferramenta do navegador é grátis e roda localmente. Chamadas API usam saldo KIT pré-pago a US$ 0,002 por requisição bem-sucedida; tarefas falhas nunca são cobradas.