Conversor de bases
Reescreve um inteiro de qualquer base entre 2 e 36 em outra: o hexadecimal FF é 255 em decimal. Cada dígito é conferido com a sua base, então um dígito inválido é apontado em vez de ser adivinhado. 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
- FF
- Base numérica de origem
- 16
- Base numérica de destino
- 10
- Resultado
- 255
- Normalizado
- FF
- Em base dez
- 255
- Contagem de dígitos
- 3
Um conversor de bases reescreve o mesmo inteiro em outra base numérica sem alterar o valor. Binário, octal, decimal e hexadecimal aparecem diariamente em aulas de programação, máscaras de rede, códigos de cor e firmware embutido, e bases acima de dezesseis surgem em esquemas seriais compactos e problemas de competição. Esta ferramenta aceita um inteiro escrito com dígitos de zero a nove e letras de A a Z em qualquer base de origem de dois a trinta e seis, verifica se cada dígito é legal para essa base e emite a string equivalente na base de destino.
Como a conversão de base preserva o valor inteiro
Um inteiro na base b é uma soma ponderada de seus dígitos: o dígito mais à direita vale um, o seguinte vale b, depois b ao quadrado, e assim por diante. Converter da base b para a base k significa recuperar esse único inteiro não negativo e reescrevê-lo com pesos que são potências de k.
Na prática, o conversor percorre a string de origem da esquerda para a direita, multiplica o acumulado pela base de origem e soma o valor de cada dígito após confirmar que ele é estritamente menor que a base de origem. Dígitos de zero a nove mapeiam para si mesmos; letras de A a Z (sem distinção de maiúsculas) mapeiam de dez a trinta e cinco.
Com o inteiro absoluto conhecido, a representação de destino é produzida por divisões repetidas pela base de destino, coletando restos como dígitos e lendo-os do último resto ao primeiro. Zero é um único dígito zero em toda base. Um sinal de menos inicial é preservado para valores não nulos; sinais de mais são aceitos e descartados.
Zeros à esquerda na origem são ignorados para o valor, mas a resposta também devolve uma forma normalizada em maiúsculas sem zeros iniciais desnecessários para que chamadores comparem strings de forma determinística. A magnitude decimal absoluta é limitada pelo limite de inteiros seguros do JavaScript, de modo que cada resto e valor posicional permanecem exatos—sem deriva em ponto flutuante, sem bibliotecas externas e sem chamadas de rede de qualquer tipo.
Onde a conversão de bases aparece no trabalho real
Estudantes depurando lições de operações bit a bit precisam de um oráculo confiável que sinalize um dígito ilegal em vez de embrulhar em silêncio ou inventar um resultado. Engenheiros de firmware e redes alternam entre máscaras binárias, bits de permissão em octal e dumps de registradores em hexadecimal ao documentar um dispositivo ou revisar uma captura. Equipes de produto que geram códigos alfanuméricos compactos em bases acima de dez ainda precisam de uma trilha de auditoria em base dez para ferramentas de suporte e armazéns.
Se mais tarde precisar de codificação binária Base64, conversão de unidades de grandezas físicas ou soma de dígitos em uma base escolhida, essas são intenções de busca e páginas de destino separadas, não sobrecargas deste conversor de bases.
Casos de uso
Exercícios de sala em binário, octal e hex
Converta valores de lição entre bases 2, 8, 10 e 16 com erros claros de dígito inválido que os alunos possam corrigir.
Dumps de registradores de firmware e redes
Reescreva valores de registrador hexadecimais como strings de bits binárias ou contagens decimais para docs, tickets e revisões de código.
Perguntas frequentes
Quais bases são suportadas?
Qualquer base inteira de 2 a 36 tanto para origem quanto para destino. Os dígitos usam 0-9 e depois A-Z (sem distinção de maiúsculas na entrada).
As letras diferenciam maiúsculas e minúsculas?
Letras de entrada não diferenciam maiúsculas. A saída sempre usa A-Z em maiúsculas para dígitos dez ou superiores.
Como números negativos são tratados?
Um sinal de menos opcional no início é aceito. O valor absoluto é convertido e o sinal é restaurado em resultados não nulos.
Quanto custa?
A ferramenta do navegador é gratuita e roda localmente.
Como escrever 255 em binário?
Como oito uns seguidos. Escolha 10 como base de origem e 2 como base de destino; o mesmo número é FF em hexadecimal, porque 255 é o maior valor que cabe em oito dígitos binários.
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/numth/radix-convert \
-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/numth/radix-convert", {
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/numth/radix-convert",
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/numth/radix-convert", 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/numth/radix-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": "FF",
"from_base": 16,
"to_base": 10
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.radix_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.
Limites
min_base | 2 |
max_base | 36 |
max_value_chars | 64 |
max_abs_decimal | 9007199254740991 |
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
O que você envia e o que recebe de volta
Checagens clássicas incluem hexadecimal FF para decimal duzentos e cinquenta e cinco, decimal duzentos e cinquenta e cinco para binário oito uns, e octal sete cinco cinco para decimal quatrocentos e noventa e três. Forneça três campos: value como o texto inteiro no alfabeto de origem, from_base como um inteiro de dois a trinta e seis, e to_base como a base de destino no mesmo intervalo. Aliases são aceitos em formas mais amigáveis: number, n, input ou text para o valor; from, source_base, base_from ou src_base para a base de origem; to, target_base, base_to ou dst_base para a base de destino. Campos ausentes, bases não inteiras, bases fora de dois a trinta e seis, valores vazios, caracteres ilegais, dígitos grandes demais para a base de origem, corpos com mais de sessenta e quatro caracteres significativos ou magnitudes além do limite de inteiros seguros são rejeitados com invalid_input e não são cobrados. Em caso de sucesso a resposta ecoa a string value original e as bases efetivas, fornece normalized como a forma canônica com sinal em maiúsculas, decimal como o inteiro com sinal em base dez, result como a string convertida na base de destino, negative como booleano e digit_count como o número de dígitos do corpo absoluto do resultado.
Onde a conversão de bases aparece no trabalho real
Como esta capacidade é um motor de parse puro, o mesmo valor e as mesmas bases sempre produzem o mesmo JSON sem deriva de modelo e sem estado armazenado. O preço da API é a base publicada de US$ 0,002 por item bem-sucedido; validação falha não consome saldo.
Casos de integração
Fixtures golden de competições e CI
Gere strings determinísticas em base b a partir de inteiros conhecidos para testes de competição e asserções de pipeline.
Perguntas técnicas
O que acontece se um dígito for inválido para a base de origem?
A requisição falha com invalid_input, nomeando o caractere incorreto e o intervalo de dígitos permitido. Entrada inválida não é cobrada.