Conversor de base
Reescreva um número de uma base para outra, da base 2 até a 36: 1010 em binário é 10 em decimal. Valores grandes continuam exatos até o último dígito, e o sinal de menos no início é mantido. 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
- 1010
- Base de origem
- 2
- Base de destino
- 10
- Resultado
- 10
Converte uma cadeia de dígitos de uma radix para outra entre base 2 e base 36 usando inteiros grandes de precisão arbitrária, preservando um sinal de menos inicial opcional.
O que significa de fato mudar de base
Uma base diz quantos dígitos diferentes um sistema de numeração usa antes de passar para uma nova posição. O decimal usa dez, o binário dois, o hexadecimal dezesseis e a base 36 usa os dez dígitos mais as vinte e seis letras. A quantidade nunca muda; muda apenas o jeito de escrevê-la. Por isso 1010 em binário e 10 em decimal são o mesmo número. O conversor lê os seus dígitos na base de origem, calcula o número inteiro que eles representam e o escreve de novo na base de destino. Assim, de binário para hexadecimal, de hexadecimal para decimal ou de decimal para base 36, o processo é sempre o mesmo.
Os erros que este conversor evita
Muitas ferramentas comuns perdem precisão sem avisar quando um número passa de 2^53, e os últimos dígitos de um identificador ou de um resumo longo saem errados. Aqui cada valor é tratado como um inteiro exato de até 200 caracteres, então nada é arredondado. Um dígito que não existe na base de origem, como um 2 em binário ou um G em hexadecimal, é apontado em vez de ignorado. Prefixos como 0x não são aceitos, de modo que a base é sempre a que você escolheu. Só números inteiros são aceitos: uma vírgula decimal ou uma fração não são convertidas.
O mesmo resultado exato em toda conversão
Como a aritmética roda sobre BigInt, não há perda de precisão silenciosa como parseInt e Number.toString(radix) podem sofrer perto e além de 2^53, o que torna isto seguro para hashes grandes, identificadores, valores de cor ou máscaras de bits. Usos comuns incluem conversões de binário para hex e de hex para decimal, codificar IDs em um alfabeto compacto de base 36 e inspecionar como um número aparece em diferentes radices.
Casos de uso
Inspeção numérica para desenvolvedores
Converta entre binário, octal, decimal e hexadecimal ao depurar máscaras de bits, flags ou valores de cor.
IDs compactos em base 36
Codifique identificadores decimais grandes em uma cadeia mais curta de base 36, ou decodifique-os de volta exatamente com inteiros grandes.
Perguntas frequentes
Ela lida com números muito grandes?
Sim. Os valores são interpretados como BigInt, então a conversão é exata sem perda de ponto flutuante, mesmo além de 2^53.
Números negativos e letras são permitidos?
Um menos inicial é preservado, as letras A-Z servem como dígitos acima de 9, e a entrada é convertida para maiúsculas, então 'ff' é igual a 'FF'.
Como converto binário para hexadecimal?
Escolha 2 como base de origem e 16 como base de destino e digite os dígitos binários. Os mesmos passos valem para qualquer par de bases entre 2 e 36, como de hexadecimal para decimal.
Posso digitar 0x ou 0b antes do número?
Não. Esses prefixos são recusados porque a base é escolhida à parte, e não deduzida a partir do número. Tire o 0x ou o 0b e escolha a base 16 ou a base 2.
Quais dígitos a base 36 usa?
Os dígitos de 0 a 9 seguidos das letras de A a Z, então a base 16 vai até F e a base 36 usa o alfabeto inteiro. Letras maiúsculas e minúsculas contam como o mesmo dígito.
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/number-base \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"FF","from_base":16,"to_base":10}'const res = await fetch("https://api.kit.forhosting.com/dev/number-base", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "FF",
"from_base": 16,
"to_base": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/number-base",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "FF",
"from_base": 16,
"to_base": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/number-base", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"FF","from_base":16,"to_base":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"FF","from_base":16,"to_base":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/number-base", 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": "FF",
"from_base": 16,
"to_base": 10
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.number_base",
"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_value_chars | 200 |
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
Conversão de radix com inteiros grandes
Como o valor é mantido como um BigInt em vez de um número JavaScript, as conversões são exatas para magnitudes arbitrariamente grandes sem perda de ponto flutuante. dev.number_base interpreta value como uma cadeia de dígitos em from_base, acumula-o em um BigInt e então recodifica esse inteiro em to_base. Tanto from_base quanto to_base são inteiros na faixa de 2 a 36; os dígitos usam 0-9 seguidos de A-Z, então a base 16 usa 0-F e a base 36 usa o alfabeto completo. A entrada é convertida para maiúsculas antes da interpretação, então o hexadecimal 'ff' e 'FF' são equivalentes, e cada caractere é verificado como um dígito válido estritamente abaixo de from_base — qualquer outra coisa devolve um erro invalid_input tipado. A resposta devolve o value original, from_base, to_base e a cadeia de resultado codificada, então o exemplo binário '1010' da base 2 para a base 10 devolve '10'.
Entrada aceita e regras estritas
value deve ser uma cadeia não vazia com no máximo 200 caracteres, e o resultado codificado também é limitado a 200 caracteres. Um único sinal de menos inicial é permitido e preservado ao longo da conversão de ida e volta, então números negativos são convertidos corretamente, mas prefixos de base são explicitamente rejeitados: qualquer value que comece com 0x, 0X, 0b ou 0B devolve invalid_input, porque a base é dada por from_base, não inferida de um prefixo. Não há suporte a frações ou ponto decimal — apenas inteiros. from_base e to_base devem ambos ser inteiros dentro de 2 a 36; um valor fora dessa faixa, um dígito que não seja legal para a base de origem, uma cadeia vazia ou longa demais, ou um sinal de menos isolado, todos levantam um erro invalid_input tipado com uma mensagem que nomeia a falha, para que quem consome possa capturá-lo e exibi-lo de forma limpa.
Casos de integração
Conversão de radix em lote
Chame a API sobre uma coluna de valores para converter um conjunto de dados inteiro entre duas bases em uma única tarefa.
Perguntas técnicas
Quais bases são suportadas?
Qualquer radix inteira de 2 a 36 tanto para from_base quanto para to_base, usando os dígitos 0-9 e depois A-Z.
Posso usar prefixos 0x ou 0b?
Não. Valores com prefixo são rejeitados com invalid_input; a radix vem de from_base, não de um prefixo.
Quais são os limites e o custo?
value e result são cada um limitados a 200 caracteres; o widget do navegador é gratuito e a API fatura apenas tarefas bem-sucedidas a US$ 0,002.