Converta inteiros entre bases numéricas
Converta valores binários, octais, decimais e hexadecimais. Espaços e underscores usados apenas como separadores visuais são aceitos.
O que é uma base numérica?
Um sistema de numeração posicional utiliza uma base, também chamada radix, para determinar quantos símbolos de dígitos existem e o valor de cada posição. Decimal usa base 10, binário usa base 2, octal usa base 8 e hexadecimal usa base 16. A escrita muda, mas o valor inteiro representado permanece o mesmo.
Binário: a representação natural dos bits
O binário possui apenas os dígitos 0 e 1. Cada posição representa uma potência de dois. Por exemplo, 11111111₂ equivale a 255₁₀. Binário é fundamental no estudo de máscaras de bits, flags, registradores, lógica digital, permissões, endereçamento e protocolos de baixo nível.
Octal: grupos compactos de três bits
Um dígito octal representa exatamente três bits porque 8 = 2³. O octal continua especialmente presente na notação de permissões Unix: os bits de leitura, gravação e execução formam grupos de três bits que se mapeiam naturalmente para dígitos de 0 a 7.
Decimal: o sistema posicional do cotidiano
Decimal utiliza os dígitos de 0 a 9. Cada posição representa uma potência de dez. O valor 255, por exemplo, é 2×10² + 5×10¹ + 5×10⁰. A conversão não altera a quantidade; altera apenas a notação utilizada para expressá-la.
Hexadecimal: quatro bits por dígito
Hexadecimal utiliza 0–9 e depois A–F para representar os valores de dez a quinze. Como 16 = 2⁴, cada dígito hexadecimal corresponde exatamente a quatro bits. Isso torna hexadecimal muito mais compacto que binário puro sem perder a facilidade de conversão em nível de bits.
Prefixos identificam a notação, mas as convenções variam
Os prefixos 0b e 0x são amplamente usados para indicar binário e hexadecimal, enquanto 0o é uma notação moderna e explícita para octal em vários ambientes. A sintaxe depende da linguagem: alguns contextos derivados de C historicamente usam zero inicial para octal, e shells possuem regras próprias. Este conversor aceita 0b, 0o e 0x somente quando correspondem à base de origem selecionada.
Por que hexadecimal e binário importam em redes
Redes frequentemente expõem valores em diferentes formas de representação. Máscaras e cálculos de prefixo são mais fáceis de compreender em binário, enquanto endereços IPv6 e campos de protocolos são frequentemente escritos em hexadecimal. A conversão de bases ajuda a visualizar como os mesmos bits podem ser apresentados de formas diferentes.
Hexadecimal é comum em depuração e trabalho de baixo nível
Endereços de memória, máscaras, campos de protocolos, dumps de bytes, dados de baixo nível e registradores são frequentemente exibidos em hexadecimal porque cada dígito hex se mapeia diretamente para quatro bits. Octal continua relevante em permissões Unix, enquanto binário é útil quando flags e posições individuais de bits importam.
Por que este conversor não usa base_convert() do PHP
A documentação do PHP alerta que base_convert() pode perder precisão com valores grandes devido a características relacionadas ao tratamento interno por ponto flutuante. Esta página faz a conversão inteira diretamente sobre strings usando divisão longa. Assim, aceita inteiros não negativos muito grandes sem exigir GMP ou BCMath; o limite de 10.000 caracteres é operacional desta ferramenta web, não um limite matemático do algoritmo.
Conversão de base numérica é diferente de Base64
Apesar dos nomes parecidos, converter o inteiro 255 de decimal para hexadecimal (FF) não é a mesma operação que codificar dados em Base64. Base64 é uma codificação binário-para-texto destinada a representar sequências arbitrárias de bytes com um alfabeto textual restrito. Um conversor de radix representa um valor numérico em outro sistema de numeração posicional.
Converter a base não altera a ordem dos bytes
Endianness descreve como os bytes de um valor com múltiplos bytes são ordenados na memória ou em um fluxo de bytes. É um conceito separado de base numérica. Converter 305419896₁₀ para 12345678₁₆ altera sua representação textual; isso não reorganiza automaticamente os bytes em little-endian ou big-endian.