Como funcionam as bases numéricas: binário, octal, decimal, hexadecimal
O que é uma base numérica
Uma base numérica é o número de algarismos distintos usados para representar quantidades. O sistema decimal (base 10) usa dez algarismos (0 a 9) porque temos dez dedos. Mas nada obriga a que a matemática seja decimal — computadores, redes, endereços de memória e cores web usam outras bases porque combinam melhor com a estrutura interna dos circuitos ou com a leitura humana.
As quatro bases relevantes em informática:
- Binário (base 2): usa
0e1. É a base natural dos circuitos digitais, que só distinguem dois estados (tensão alta ou baixa). - Octal (base 8): usa
0a7. Ainda aparece em permissões Unix (chmod 755) e em código antigo de mainframe. - Decimal (base 10): usa
0a9. Convenção humana e financeira. - Hexadecimal (base 16): usa
0a9eAaF. Compacta números binários e domina cores CSS (#FF00AA), endereços MAC e endereços IPv6.
Como se calcula
Cada dígito ocupa uma posição que vale uma potência crescente da base. O número decimal 253 lê-se como 2 × 10² + 5 × 10¹ + 3 × 10⁰ = 200 + 50 + 3. A mesma lógica em qualquer base:
Binário 11111101 = 1×2⁷ + 1×2⁶ + 1×2⁵ + 1×2⁴ + 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 253
Octal 375 = 3×8² + 7×8¹ + 5×8⁰ = 192 + 56 + 5 = 253
Hexadecimal FD = 15×16¹ + 13×16⁰ = 240 + 13 = 253
Conversão prática decimal para binário: divide por 2 sucessivamente e recolhe os restos de baixo para cima.
253 / 2 = 126 resto 1
126 / 2 = 63 resto 0
63 / 2 = 31 resto 1
...
Resultado: 11111101
Binário para hexadecimal: agrupa em blocos de 4 bits (nibble). 1111 1101 = F D. Este é o motivo pelo qual hexadecimal é o formato favorito para expressar bytes: um byte cabe em exactamente dois dígitos hex, sempre.
Exemplo prático
Estás a configurar um servidor Linux em 2026 e queres dar permissão de leitura/escrita ao dono e leitura ao grupo e a outros num ficheiro. A permissão em octal é 644.
- Dono:
6 = 110binário =rw-(ler, escrever). - Grupo:
4 = 100binário =r--(só ler). - Outros:
4 = 100binário =r--.
Aplicas com chmod 644 ficheiro.txt. Se quisesses executável para o dono, seria 744: dono 7 = 111 = rwx.
Outro caso: uma cor CSS vermelha vibrante #FF3366. Em decimal, FF = 255, 33 = 51, 66 = 102. RGB (255, 51, 102). O canal alfa em cor #FF336680 acrescenta 80 = 128, ou seja 50 % de transparência.
Numa configuração de router: uma máscara de rede /24 corresponde a 255.255.255.0, cujo binário é 11111111.11111111.11111111.00000000 — 24 bits a 1.
Contexto em Portugal
O ensino secundário português (informática 12.º ano, cursos profissionais em programação) inclui bases numéricas no currículo. O Instituto Politécnico do Porto e o Técnico de Lisboa exigem fluência em conversão binária no primeiro semestre de licenciaturas em engenharia informática.
Aplicações profissionais quotidianas:
- Endereços IPv4:
192.168.1.1em decimal,11000000.10101000.00000001.00000001em binário — 32 bits. - Endereços IPv6:
2001:db8::1em hexadecimal — 128 bits divididos em 8 grupos de 4 dígitos hex. - Endereços MAC:
a4:b1:c2:3d:4e:5fem hexadecimal — 48 bits para identificar interfaces de rede. - Cores web:
#RRGGBB(24 bits) e#RRGGBBAA(32 bits com alfa). - Permissões POSIX: octal
chmod. - Endereços de memória em debugging: sempre hexadecimal (
0x7ffee). - Unicode: cada codepoint em hex (
U+00E7paraç).
Erros comuns
- Confundir
0xcom multiplicação: em C, Python e JavaScript,0xFFé o literal hexadecimal para 255. Não é “0 vezes x vezes FF”. Prefixo0bsignifica binário,0o(ou0isolado em C legacy) significa octal. - Interpretar octal por engano em C:
010em C não é 10 decimal — é 8 (octal). Bugs históricos em códigos que padded números com zero à esquerda. - Somar em base errada:
A + 6em hex dá10(hex), que é 16 decimal. Não é 16 hex nem “A6”. Cada base tem a sua aritmética. - Confundir bits com bytes:
8 bits = 1 byte. Um endereço IPv4 de 32 bits ocupa 4 bytes. Um endereço IPv6 de 128 bits ocupa 16 bytes. Ver Mbps vs MB/s. - Assumir cores só existem em hex: CSS aceita
rgb(255, 51, 102),hsl(348, 100%, 60%)e#FF3366como equivalentes. Ver a explicação do conversor de cores. - Contar bits do zero ou do um: em binário, o bit menos significativo é o mais à direita e chama-se bit 0 em convenção habitual — mas alguns manuais numeram do 1.
Ver também
- Conversor de bases — conversão entre binário, octal, decimal e hexadecimal.
- Conversor de cores — HEX, RGB e HSL na web.
- Notação científica — outra convenção de escrita numérica.