College Online
0%

Sistemas de Numeração

Módulo 1 · Aula 1 ~20 min de leitura Nível: Introdutório

Vídeo da aula estará disponível em breve

Por que bases numéricas importam

Computadores digitais operam com dois níveis de tensão — alto e baixo — que representamos como 1 e 0. Toda informação, desde textos até vídeos, precisa ser codificada nessa base binária. Entender sistemas de numeração é o primeiro passo para compreender como hardware digital processa dados.

Nesta aula, vamos trabalhar com quatro bases principais:

Notação posicional

Em qualquer base b, o valor de um número com n dígitos é dado pela soma ponderada:

Fórmula
N = d(n-1) × b^(n-1) + d(n-2) × b^(n-2) + ... + d(1) × b^1 + d(0) × b^0

Exemplo em base 10:
  1472₁₀ = 1×10³ + 4×10² + 7×10¹ + 2×10⁰
         = 1000  + 400   + 70    + 2
         = 1472

Exemplo em base 2:
  1011₂ = 1×2³ + 0×2² + 1×2¹ + 1×2⁰
        = 8    + 0    + 2    + 1
        = 11₁₀

Para partes fracionárias, os pesos continuam com expoentes negativos: b⁻¹, b⁻², etc.

Exemplo
101.11₂ = 1×2² + 0×2¹ + 1×2⁰ + 1×2⁻¹ + 1×2⁻²
        = 4    + 0    + 1    + 0.5   + 0.25
        = 5.75₁₀

Conversão entre bases

Decimal para binário — divisões sucessivas

Para converter um número inteiro decimal para binário, dividimos sucessivamente por 2 e coletamos os restos de baixo para cima:

Exemplo: 45₁₀ → binário
45 ÷ 2 = 22  resto 1  ↑
22 ÷ 2 = 11  resto 0  │
11 ÷ 2 =  5  resto 1  │  Leitura de baixo
 5 ÷ 2 =  2  resto 1  │  para cima
 2 ÷ 2 =  1  resto 0  │
 1 ÷ 2 =  0  resto 1  │

Resultado: 45₁₀ = 101101₂

Verificação: 32 + 0 + 8 + 4 + 0 + 1 = 45 ✓

Binário para octal e hexadecimal

Como 8 = 2³ e 16 = 2⁴, a conversão entre binário e octal/hex é direta — basta agrupar bits:

Agrupamento
Binário → Octal: agrupar de 3 em 3 (da direita para a esquerda)
  101 101₂ = (101)(101)₂ = 5 5₈ = 55₈

Binário → Hexadecimal: agrupar de 4 em 4
  0010 1101₂ = (0010)(1101)₂ = 2 D₁₆ = 2D₁₆

Tabela de referência rápida:
  Bin   Oct   Hex  │  Bin   Oct   Hex
  000    0     0   │  1000   -     8
  001    1     1   │  1001   -     9
  010    2     2   │  1010   -     A
  011    3     3   │  1011   -     B
  100    4     4   │  1100   -     C
  101    5     5   │  1101   -     D
  110    6     6   │  1110   -     E
  111    7     7   │  1111   -     F
i
Por que hexadecimal é tão usado? Um dígito hex representa exatamente 4 bits (um nibble). Isso significa que 2 dígitos hex representam 1 byte (8 bits). Endereços de memória, cores em CSS (#FF00AA), e dumps de dados usam hex porque é compacto e tem correspondência direta com bits.

Código BCD (Binary-Coded Decimal)

O BCD representa cada dígito decimal individualmente em 4 bits. Diferente da conversão binária pura, cada dígito decimal ocupa seu próprio grupo de 4 bits:

BCD vs. Binário puro
Número decimal: 93

BCD:          1001  0011     (9 → 1001, 3 → 0011)
Binário puro: 0101  1101     (93₁₀ = 01011101₂)

Os dois são diferentes! BCD usa mais bits, mas facilita
a exibição em displays de 7 segmentos e cálculos decimais.

Mais exemplos:
  47₁₀ em BCD = 0100 0111
  256₁₀ em BCD = 0010 0101 0110

BCD é usado em calculadoras, relógios digitais e qualquer sistema onde a exibição decimal direta é prioritária. A desvantagem é o desperdício: com 4 bits podemos representar 0-15, mas BCD só usa 0-9, desperdiçando 6 combinações.

Representação de números negativos

Sinal-magnitude

O bit mais significativo (MSB) indica o sinal: 0 = positivo, 1 = negativo. Os demais bits representam o valor absoluto.

Sinal-magnitude (4 bits)
+5 = 0101
-5 = 1101

Problema: existem dois zeros!
  +0 = 0000
  -0 = 1000

Faixa com n bits: -(2^(n-1) - 1) a +(2^(n-1) - 1)
Com 4 bits: -7 a +7 (15 valores, não 16)

Complemento de 1

Para negar um número, invertemos todos os bits:

Complemento de 1 (4 bits)
+5 = 0101
-5 = 1010  (inversão bit a bit)

Ainda tem dois zeros:
  +0 = 0000
  -0 = 1111

Faixa: -7 a +7

Complemento de 2 — o padrão moderno

Complemento de 2 = complemento de 1 + 1. É o sistema usado em praticamente todos os processadores modernos porque tem um único zero e a aritmética funciona naturalmente:

Complemento de 2 (4 bits)
Para negar: inverte todos os bits e soma 1.

+5 = 0101
~5 = 1010  (inversão)
-5 = 1011  (1010 + 1)

Verificação: 0101 + 1011 = 10000 (carry descartado) = 0000 ✓

Tabela completa (4 bits):
  Binário   Decimal
  0111       +7
  0110       +6
  0101       +5
  0100       +4
  0011       +3
  0010       +2
  0001       +1
  0000        0
  1111       -1
  1110       -2
  1101       -3
  1100       -4
  1011       -5
  1010       -6
  1001       -7
  1000       -8    ← um valor negativo a mais!

Faixa com n bits: -2^(n-1) a +(2^(n-1) - 1)
Com 8 bits: -128 a +127
Com 16 bits: -32768 a +32767
Com 32 bits: -2.147.483.648 a +2.147.483.647
!
Overflow em complemento de 2 Overflow ocorre quando o resultado de uma operação excede a faixa representável. Em 4 bits com sinal: 0111 (+7) + 0001 (+1) = 1000 (-8). O resultado é negativo quando deveria ser +8 — isso é overflow. Hardware detecta overflow comparando o carry de entrada e saída do MSB.

Aritmética binária básica

A soma binária segue as mesmas regras da soma decimal, com carry:

Soma binária
Regras básicas:
  0 + 0 = 0
  0 + 1 = 1
  1 + 0 = 1
  1 + 1 = 10  (0 com carry 1)
  1 + 1 + 1 = 11  (1 com carry 1)

Exemplo: 1011 + 0110
    1 1 1      ← carries
      1 0 1 1  (11)
  +   0 1 1 0  ( 6)
  -----------
    1 0 0 0 1  (17)

Subtração via complemento de 2:
  A - B = A + (-B) = A + (~B + 1)

  7 - 3 em 4 bits:
    0111 + 1101 = 10100
    Descarta carry → 0100 = 4 ✓

No harness.os

Sistemas de numeração aparecem em toda a stack do harness.os:

Exercícios

  1. Conversões: Converta 173₁₀ para binário, octal e hexadecimal. Verifique cada resultado convertendo de volta para decimal.
  2. Complemento de 2: Represente -42 em complemento de 2 com 8 bits. Em seguida, calcule 100 + (-42) em binário e verifique que o resultado é 58.
  3. BCD: Codifique 2048₁₀ em BCD e em binário puro. Quantos bits cada representação ocupa? Qual é mais eficiente?

Resumo

Verifique seu entendimento

Em complemento de 2 com 8 bits, qual é o valor decimal de 11010110₂?

  • 214
  • -42
  • -43
  • -86