As bases numéricas (também chamadas de raízes) definem quantos símbolos de dígitos exclusivos são usados em um sistema numeral posicional - os humanos usam a base 10 (decimal, dígitos 0-9) quase exclusivamente para aritmética diária, mas os computadores operam internamente na base 2 (binário, dígitos 0 e 1), os programadores leem endereços de memória na base 16 (hexadecimal, dígitos 0-9 e A-F) e as permissões de arquivo Unix são tradicionalmente expressas na base 8 (octal). A conversão entre bases é fundamental para a ciência da computação, programação embarcada e eletrônica digital. As seções abaixo abordam por que existem bases diferentes e quando cada uma é usada, como a notação posicional funciona de forma idêntica em qualquer base e o complemento de dois - a representação inteligente que permite aos computadores lidar com números inteiros negativos com o mesmo circuito usado para números positivos.
Por que binário, octal e hexadecimal persistem
Os computadores operam em binário porque os circuitos digitais têm exatamente dois estados estáveis – tensão alta (1) ou baixa (0) – e todas as outras representações de dados devem ser mapeadas para esta camada binária subjacente. Um transistor em silício é condutor ou não; um domínio magnético aponta para um lado ou para outro; uma célula na memória flash armazena carga alta ou baixa. A representação binária, portanto, não é uma escolha de design, mas uma restrição física do hardware digital.
Hexadecimal (base 16) persiste porque cada dígito hexadecimal representa exatamente 4 dígitos binários, tornando hexadecimal uma abreviação compacta e legível para binário: um byte (8 bits) leva apenas 2 dígitos hexadecimais (00–FF) em vez de 8 dígitos binários (00000000–11111111). Endereços de memória, códigos de cores (#FF5733), endereços MAC e valores hash usam hexadecimal para facilitar a leitura. Octal (base 8) representa 3 dígitos binários por símbolo e sobrevive em permissões de arquivo Unix (rwxr-xr-x = 755) e em alguns sistemas embarcados. A base 10 é puramente uma conveniência humana decorrente de ter 10 dedos - os computadores não usam decimal internamente e convertem apenas para exibição para usuários humanos, introduzindo erros de arredondamento (como 0,1 não sendo exatamente representável em binário) que ocasionalmente surpreendem os programadores.
Notação posicional em qualquer base
A notação posicional funciona de forma idêntica em qualquer base — cada posição de dígito representa uma potência da base. Na base 10, o número 5.273 significa 5×10³ + 2×10² + 7×10¹ + 3×10⁰ = 5000 + 200 + 70 + 3. Na base 2, o número binário 1101 significa 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 8 + 4 + 0 + 1 = 13 decimais. Na base 16, o número hexadecimal 2AF significa 2×16² + 10×16¹ + 15×16⁰ = 512 + 160 + 15 = 687 decimal.
Essa uniformidade significa que o algoritmo de conversão é idêntico, independentemente das bases envolvidas: multiplique cada dígito por seu peso posicional e some os resultados para obter decimal, depois divida repetidamente pela base alvo e registre os restos para converter decimal em qualquer outra base. A calculadora automatiza esse processo ao mesmo tempo que oferece suporte a bases personalizadas de 2 a 36 (usando dígitos de 0 a 9 seguidos de letras de A a Z para dígitos de valor mais alto). A base 36 é o máximo representável com caracteres alfanuméricos padrão e é ocasionalmente usada para codificação compacta de números inteiros grandes (encurtadores de URL, identificadores de arquivo), onde números decimais de 10 dígitos podem ser compactados em representações de base 36 de 6 dígitos.
Complemento de dois para inteiros assinados
Os computadores precisam de uma forma de representar números inteiros negativos de forma eficiente, e o complemento de dois é a solução universal moderna usada em praticamente todas as CPUs fabricadas desde a década de 1970. No complemento de dois n bits, o bit mais significativo representa -2^(n-1) enquanto os bits restantes representam valores positivos. Para complemento de dois de 8 bits: o valor 00000001 é +1, 01111111 é +127 (máximo), 10000000 é -128 (mínimo) e 11111111 é -1. O intervalo para inteiros com sinal de n bits é -2 ^ (n-1) a +2 ^ (n-1) -1, que é assimétrico porque zero leva um dos códigos positivos.
O complemento de dois tem uma vantagem prática crítica: adição e subtração funcionam de forma idêntica à aritmética sem sinal, sem nenhum caso especial para números negativos, então o hardware precisa de apenas um circuito somador para operações com e sem sinal. Para negar um número, inverta todos os bits e adicione 1 – é isso. As representações alternativas (sinal-magnitude, complemento de um) caíram em desuso porque exigem lógica de hardware separada para operações assinadas ou têm duas representações de zero (+0 e -0), ambas as quais adicionam complexidade sem benefício. A calculadora mostra a representação em complemento de dois para qualquer valor inteiro em larguras de 8, 16, 32 ou 64 bits, o que é especialmente útil ao depurar código incorporado ou decodificar formatos de arquivos binários onde valores assinados são comuns.