Reescrevendo o Mesmo Valor em Binário, Octal, Decimal e Hexadecimal
Uma base numérica (ou “radix”) é quantos dígitos distintos um sistema numérico usa antes de transportar para o próximo valor posicional — decimal usa 10 (0–9), binário usa 2 (0–1), octal usa 8 (0–7), e hexadecimal usa 16 (0–9 e depois A–F). Insira um número inteiro em qualquer uma dessas quatro bases, e esta calculadora mostra o mesmo valor escrito em todas as quatro de uma vez.
O binário é como os computadores representam todo valor internamente (cada dígito é um “bit”); o hexadecimal é uma abreviação comum para binário em programação (cada dígito hexadecimal representa exatamente 4 dígitos binários, então é muito mais compacto de ler e digitar); o octal aparece em permissões de arquivo do Unix mais antigas e em alguns contextos de baixo nível. O decimal é apenas o sistema de base 10 do dia a dia.
A Fórmula
Todo sistema numérico posicional funciona da mesma forma: cada dígito é multiplicado pela base elevada à sua potência de valor posicional, depois somado:
onde é o dígito na posição (contando a partir de 0 no dígito mais à direita). Converter para uma base diferente divide repetidamente o valor decimal pela nova base, registrando cada resto — o inverso da soma acima.
Exemplo Prático
Convertendo o binário 11111111 para as outras três bases:
- Lendo da direita para a esquerda, cada
1contribui com seu valor posicional: . - Decimal: 255.
- Octal: dividindo 255 por 8 repetidamente (255 ÷ 8 = 31 resto 7, 31 ÷ 8 = 3 resto 7, 3 ÷ 8 = 0 resto 3) lê os restos de baixo para cima como 377.
- Hexadecimal: 255 ÷ 16 = 15 resto 15, 15 ÷ 16 = 0 resto 15 — ambos os restos são 15 (F em hex), dando FF.
Principais Fatores a Considerar
- Um único byte (8 bits) pode representar exatamente 256 valores distintos — de 0 a 255 em decimal, ou de 00 a FF em hexadecimal. É exatamente por isso que 255/FF é um valor de referência tão comum na computação — é o valor máximo que um único byte pode conter, o que aparece em toda parte, de canais de cor RGB (0-255 por canal) até formatos de rede e de arquivo.
- O octal era historicamente mais comum do que é hoje, em grande parte por causa dos tamanhos de palavra de computadores mais antigos. O octal (base 8) mapeia perfeitamente para grupos de 3 dígitos binários, o que era conveniente para computadores construídos com tamanhos de palavra divisíveis por 3 bits — a computação moderna mudou amplamente para o hexadecimal (que mapeia para grupos de 4 bits), já que a maioria do hardware moderno usa tamanhos de palavra divisíveis por 4 e 8, embora o octal ainda apareça em contextos específicos, como a notação de permissões de arquivo do Unix (por exemplo, chmod 755).
- Um erro comum de programadores é confundir a base de um número apenas pelo contexto. Os dígitos “10” significam valores muito diferentes dependendo da base — 10 em decimal, 2 em binário, 8 em octal, 16 em hexadecimal — motivo pelo qual as linguagens de programação geralmente exigem um prefixo explícito (como 0x para hex ou 0b para binário) para remover qualquer ambiguidade sobre qual base é pretendida.
- Qualquer número inteiro pode teoricamente ser representado em QUALQUER base, não apenas essas quatro. Binário, octal, decimal e hexadecimal são simplesmente as quatro bases com o uso real mais comum na computação e na matemática do dia a dia — o mesmo princípio de notação posicional que esta calculadora usa se estende a qualquer base, como base 3, base 20, ou base 60 (a base de como o tempo e os ângulos são tradicionalmente divididos).
Erros Comuns
- Ler um número de base mista sem prefixo como decimal por padrão. “10” significa dez em decimal, mas apenas dois em binário — sempre verifique (ou indique) em qual base um número está escrito antes de fazer cálculos com ele.
- Supor que zeros à esquerda mudam o valor. Assim como em decimal,
0011em binário é o mesmo valor que11— zeros à esquerda só importam para formatação de largura fixa (como mostrar um byte completo), não para o valor real do número. - Esquecer que dígitos hexadecimais acima de 9 usam letras, não números de dois dígitos. O
dez hexadecimal é escrito como
A, não10— escrever10em hex na verdade significa dezesseis em decimal, uma fonte comum de erros consideráveis. - Tentar converter um número negativo diretamente. Como observa o FAQ acima, valores binários/hexadecimais negativos dependem de uma largura de bits escolhida e de uma convenção de complemento de dois — não existe uma única conversão inequívoca como há para números inteiros não negativos.
Útil Saber
- Está trabalhando com endereços de rede em vez de números arbitrários? A Calculadora de Sub-rede IP aplica essa mesma relação binário/decimal especificamente a endereços IPv4.
- Precisa de números decimais muito grandes ou muito pequenos em forma compacta? A Calculadora de Notação Científica trata desse tipo de conversão em vez disso.
- Tem curiosidade sobre um sistema de numeração posicional muito mais antigo? A Calculadora de Números Romanos converte de e para algarismos romanos, que usam uma abordagem completamente diferente (não posicional).