Conversor de base fracionária
O 0.1 decimal é 0.0(0011) em binário: um ciclo de 4 dígitos que se repete sem fim, não um bit arredondado. Converta qualquer fração entre as bases 2 e 16, com o bloco periódico entre parênteses e o tamanho do período. 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
- 0.1
- Base de origem
- 10
- Base de destino
- 2
- Resultado
- 0.0(0011)
- Máximo de dígitos
- 32
- Parte não periódica
- 0
- Período
- 4
Conversores de base inteira param no ponto da base. Estudantes, autores de compiladores e engenheiros embarcados ainda precisam da metade fracionária: o 0.1 binário é um meio, o 0.1 decimal é um décimo, e o mesmo racional vira outro fluxo de dígitos —muitas vezes com período— quando a base muda. Este conversor de parte fracionária aceita uma fração pura em qualquer base de origem de dois a dezesseis, opcionalmente com bloco periódico entre parênteses como 0.1(6), reconstrói o racional exato com aritmética BigInt e reescreve o valor na base de destino mapeando restos para que períodos verdadeiros surjam como 0. AB(C) em vez de um recorte opaco.
Por que converter a parte fracionária não é converter inteiros
A conversão de números inteiros percorre valores de posição que crescem como potências da base: unidades, base, base ao quadrado e assim por diante. Os valores fracionários encolhem: base à menos um, menos dois, etc. Essa única diferença quebra todo conversor só de inteiros quando o usuário cola 0.1, 0.
A3 ou 0.0011. Na base dez, 0.1 é exatamente um décimo; na base dois o mesmo décimo é a expansão infinita 0.0(0011), porque dez e dois não compartilham um fator finito que termine ambas as representações. Os manuais introduzem isso com um terço decimal igual a 0.1 na base três e 0.(3) na base dez, mas a mesma identidade vale para todo par de bases de dois a dezesseis.
Um conversor de inteiros que silencie o ponto da base, ou que só multiplique por potências grandes e arredonde, inventa outro número.
Contrato de entrada, notação periódica e forma da resposta
As bases são inteiros de dois a dezesseis inclusive. O campo value é só a parte fracionária: escreva 0. ABC, . ABC ou ABC para expansão finita no alfabeto de origem 0–9 e A–F (sem distinção de maiúsculas).
Para um período conhecido na origem, acrescente um bloco entre parênteses: 0.1(6) significa um sexto na base dez escrito como 0.1666…, e 0.(3) é o três puramente periódico. Parte inteira diferente de zero é rejeitada — combine esta ferramenta com um conversor de inteiros se precisar das duas metades.
Onde converter frações entre bases ajuda
Salas de aula de computação usam um conversor de parte fracionária para que alunos vejam que 0.1 decimal não é 0.1 binário e meçam o comprimento do período sem divisão longa manual em cada exercício. Autores de compiladores e interpretadores verificam tabelas de literais ao embutir constantes fracionárias em diferentes sintaxes de base. Engenheiros embarcados e de DSP comparam padrões de ponto fixo binários e hexadecimais com planilhas decimais antes de congelar larguras de palavra.
Mantenha requisições pequenas, fixe nas suítes as strings douradas do result —incluindo parênteses do período— e obtenha reescritas fracionárias reproduzíveis para lição de casa, plugins LMS e workers na borda sem montar um sistema de álgebra simbólica próprio.
Casos de uso
Lições de casa e laboratórios de bases numéricas
Converta frações de sala como 0.1₁₀ ↔ binário ou 0.A₁₆ ↔ decimal e mostre resultados terminantes versus periódicos com o comprimento do período.
Tabelas de compiladores e especificações de linguagem
Gere fluxos exatos de dígitos fracionários ao verificar como literais numéricos se reescrevem entre bases 2–16 em analisadores e suítes de teste.
Checagens de ponto fixo e projeto DSP
Confronte valores de projeto decimais com padrões fracionários binários ou hex antes de travar o comprimento de palavra e os fatores de escala.
Perguntas frequentes
Quais bases são suportadas?
Bases de origem e destino de 2 a 16 inclusive. Os dígitos são 0–9 e A–F conforme a base de origem exigir.
Como se escreve a notação periódica?
Na entrada use um (bloco) final como 0.1(6) ou 0.( 3). Na saída, expansões periódicas aparecem como 0.prefixo(bloco) com period igual ao comprimento do bloco.
Por que o 0.1 decimal nunca termina em binário?
Porque um décimo não tem expansão finita na base dois. O conversor reconstrói a fração exata, percebe que os dígitos 0011 se repetem sem fim e escreve 0.0(0011), com período 4, em vez de uma sequência de bits arredondada.
Dá para converter um número com parte inteira?
Não. Só a parte depois do ponto é aceita, e uma parte inteira diferente de zero é recusada. Converta a parte inteira com um conversor de bases para inteiros e junte as duas metades depois.
Quantos dígitos o resultado mostra?
Até 32 dígitos depois do ponto por padrão, e até 64 se você aumentar o limite. Se um ciclo se repetir antes, ele é fechado entre parênteses; se o limite chegar primeiro, o resultado avisa que foi cortado.
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/dev/base-fraction-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"0.1","from_base":10,"to_base":2}'const res = await fetch("https://api.kit.forhosting.com/dev/base-fraction-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "0.1",
"from_base": 10,
"to_base": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/base-fraction-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "0.1",
"from_base": 10,
"to_base": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/base-fraction-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"0.1","from_base":10,"to_base":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"0.1","from_base":10,"to_base":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/base-fraction-convert", 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": "0.1",
"from_base": 10,
"to_base": 2
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.base_fraction_convert",
"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.
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 limite max_digits contém expansões patológicas.
Por que converter a parte fracionária não é converter inteiros
Projetistas de ponto fixo, demos no estilo IEEE e tabelas de constantes em assembly precisam dessa reescrita com resposta honesta sobre terminação versus comprimento do período. Esta capacidade nunca arredonda a origem: analisa dígitos em uma fração reduzida exata e emite dígitos de destino pelo mapa clássico de restos, de modo que casos terminantes, puramente periódicos e mistos permanecem fiéis até max_digits forçar um limite controlado.
Contrato de entrada, notação periódica e forma da resposta
Envie um corpo JSON com value, from_base e to_base. O opcional max_digits (padrão trinta e dois, máximo sessenta e quatro) limita quantos dígitos de destino são gerados antes de parar; se um resto se repete antes, o ciclo fecha com parênteses e truncated é false. No sucesso o corpo devolve value normalizado, ambas as bases, max_digits, o result como 0.0(0011), o prefixo non_repeating, o bloco repeating opcional, as flags is_terminating e is_repeating, o comprimento do período, o booleano truncated, um decimal_approx curto e uma string formula. Dígitos inválidos para a base de origem, bases fora de dois a dezesseis, frações vazias e parênteses malformados falham com invalid_input e não são cobrados. Exemplo: value 0.1, from_base dez e to_base dois produz a fração binária periódica de um décimo, não um bit arredondado.
Onde uma API de base fracionária se paga
Como a implementação é parse de nível A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo nem rede de saída; validação falha não consome saldo.
Perguntas técnicas
Como converter um número fracionário entre duas bases?
Envie value (por exemplo 0.1 ou 0.1(6)), from_base e to_base como inteiros 2–16. A API devolve a fração reescrita com parênteses quando detecta um ciclo periódico.
O que o max_digits controla?
Limita quantos dígitos fracionários de destino são emitidos (padrão 32, máximo 64). Ciclos reais fecham cedo pelo mapa de restos; só expansões longas não detectadas marcam truncated como true.
Quanto custa o conversor de base fracionária?
A ferramenta no navegador é gratuita. Requisições API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.