Binário, Octal, Decimal e Hexadecimal: O Guia Profissional para Programação, Infraestrutura e Dados

Sistemas numéricos são a espinha dorsal da computação. Por trás de variáveis, endereços de memória, protocolos de rede e dispositivos eletrônicos, tudo se resume a como representamos e manipulamos números.

Este guia vai te dar uma visão completa, aplicada e técnica dos sistemas de numeração Binário, Octal, Decimal e Hexadecimal, com foco em programação, infraestrutura e estruturas de dados.


Visão Geral: Os 4 Sistemas Numéricos

SistemaBaseAlgarismos usadosAplicação comum
Binário20, 1Nível de máquina, lógica digital
Octal80 a 7Permissões em Unix, compactação de binário
Decimal100 a 9Uso humano, cálculo cotidiano
Hexadecimal160 a 9, A a FEndereçamento, cores CSS, memória, assembly

1. Sistema Binário (Base 2)

O binário é o idioma nativo dos computadores. Tudo, no fim das contas, vira 0 ou 1.

Cada bit representa uma potência de 2:

Exemplo:

Número binário: 1011
Posições:        3 2 1 0
Potências:       8 4 2 1
Cálculo:       (1×8) + (0×4) + (1×2) + (1×1) = 11

Aplicações:

  • Flags em programação
  • Máscaras de sub-rede (CIDR)
  • Bitwise operations (&, |, ^, ~, <<, >>)
  • Representação de permissões, sensores, status binário (ex: ON/OFF)

Exemplo em C:

int flags = 0b1010;  // binário no GCC
if (flags & 0b1000) {
    // bit 3 está ativo
}

2. Sistema Octal (Base 8)

Cada dígito octal representa 3 bits binários. Mais legível que binário puro.

Exemplo:

Binário:  110 101
Octal:      6   5 → 65₈ = (6×8 + 5) = 53₁₀

Aplicações:

  • Permissões de arquivos no Linux (ex: chmod 755)
    • 7 = rwx, 5 = r-x, 0 = ---
  • Interpretação de binários compactados
  • Sistemas embarcados legados

Exemplo em shell:

chmod 755 script.sh
# rwxr-xr-x

3. Sistema Decimal (Base 10)

Sistema que usamos no dia a dia. Cada posição vale uma potência de 10.

Exemplo:

Número: 538
= (5×100) + (3×10) + (8×1) = 538

Aplicações:

  • Interface com o usuário (valores em input/output)
  • Representação de valores financeiros, leitura de logs
  • Intermediário entre os outros sistemas

Exemplo em Python:

num = int("1011", 2)  # binário → decimal → 11
print(num)

4. Sistema Hexadecimal (Base 16)

Cada dígito hexadecimal representa 4 bits binários. Muito usado em baixo nível, pois é mais compacto e legível.

Exemplo:

Hex:   0x2F
= (2×16) + (15) = 47₁₀
Binário: 0010 1111

Tabela base:

HexBinário
00000
10001
91001
A1010
F1111

Aplicações:

  • Endereçamento de memória (ex: 0x7FFF)
  • Códigos de cor (#FF00FF)
  • Debug de hardware e firmware
  • Representação de MAC/IP/IPv6

Exemplo em C:

uint8_t valor = 0xAF;
printf("%X", valor); // saída: AF

Conversões Práticas

Binário ↔ Decimal

  • Binário → Decimal: somar potências de 2
  • Decimal → Binário: dividir por 2 e anotar restos

Python:

bin(25)       # '0b11001'
int('11001', 2)  # 25

Decimal ↔ Hexadecimal

  • Decimal → Hex: divide por 16
  • Hex → Decimal: somar potências de 16

Exemplo:

hex(255)  # '0xff'
int('ff', 16)  # 255

Bitwise na Programação

Manipular bits é fundamental para lidar com hardware, compactação, segurança e performance.

OperaçãoSímboloExemploResultado
AND&0b1101 & 0b10110b1001
OR```0b1101
XOR^0b1101 ^ 0b10110b0110
NOT~~0b1101depende da linguagem (complemento de 2)
Shift L<<0b0001 << 20b0100
Shift R>>0b1000 >> 30b0001

Redes e Infraestrutura

IPv4 e CIDR (binário e decimal)

IP: 192.168.1.10 → 11000000.10101000.00000001.00001010
Máscara: /24 → 255.255.255.0 → 11111111.11111111.11111111.00000000

MAC Address (hexadecimal)

MAC: 00:1A:2B:3C:4D:5E → 6 bytes → 48 bits → hexadecimal puro

Cores em HTML/CSS

#FF0000 = Red
#00FF00 = Green
#0000FF = Blue
→ Cada par representa um byte (0-255)

Dica Profissional: Use Sempre o Sistema Adequado

SituaçãoSistema Ideal
Interface com usuárioDecimal
Códigos de cor / redes / memóriaHexadecimal
Lógica de hardware / flagsBinário
Permissões em sistemas UnixOctal

Conclusão

Compreender a fundo os sistemas numéricos e saber transitar entre eles é fundamental para qualquer profissional de tecnologia. Seja programador, sysadmin, devops ou engenheiro eletrônico, dominar essas representações é o que separa o “codador” do arquiteto de sistemas.

Nada no mundo digital existe fora de 0 e 1 — o resto é abstração. Aprender a lidar com essas bases é aprender a falar a língua dos computadores.

Rolar para cima