ZN/pt
ZN.pt · Bases numéricas: decimal ↔ binário ↔ hex · zn.pt/bases-numericas

Bases numéricas: decimal ↔ binário ↔ hex

Valor + base de origem. Devolvemos as quatro representações.

Decimal
255
Binário (2)11111111
Octal (8)377
Hexadecimal (16)FF
Comparar

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 0 e 1. É a base natural dos circuitos digitais, que só distinguem dois estados (tensão alta ou baixa).
  • Octal (base 8): usa 0 a 7. Ainda aparece em permissões Unix (chmod 755) e em código antigo de mainframe.
  • Decimal (base 10): usa 0 a 9. Convenção humana e financeira.
  • Hexadecimal (base 16): usa 0 a 9 e A a F. 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 = 110 binário = rw- (ler, escrever).
  • Grupo: 4 = 100 binário = r-- (só ler).
  • Outros: 4 = 100 biná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.1 em decimal, 11000000.10101000.00000001.00000001 em binário — 32 bits.
  • Endereços IPv6: 2001:db8::1 em hexadecimal — 128 bits divididos em 8 grupos de 4 dígitos hex.
  • Endereços MAC: a4:b1:c2:3d:4e:5f em 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+00E7 para ç).

Erros comuns

  • Confundir 0x com multiplicação: em C, Python e JavaScript, 0xFF é o literal hexadecimal para 255. Não é “0 vezes x vezes FF”. Prefixo 0b significa binário, 0o (ou 0 isolado em C legacy) significa octal.
  • Interpretar octal por engano em C: 010 em 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 + 6 em 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 #FF3366 como 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

Perguntas frequentes

03 entradas
Porque existem bases diferentes de 10?

Base 10 é herança biológica (10 dedos). Computação usa base 2 (binário) porque circuitos electrónicos têm 2 estados (ligado/desligado). Hexadecimal (base 16) é atalho compacto para binário — cada dígito hex = 4 bits. Octal (base 8) foi comum em sistemas antigos, hoje raro.

Como converter 255 decimal para binário e hex?

255 em binário = 11111111 (8 bits, todos a 1). Em hex = FF. Este é um número importante: representa o valor máximo de 1 byte (2^8 − 1). É por isso que cores RGB vão até 255 e endereços de rede terminam em .255.

Como se lê '0xFF' ou '0b1010'?

0x = prefixo hexadecimal (0xFF = 255 decimal). 0b = prefixo binário (0b1010 = 10 decimal). 0o = octal (0o377 = 255). Notações usadas em programação (JavaScript, Python, C). Sem prefixo, assume-se decimal — mas 'FF' sem contexto é ambíguo.

Ver também