Sistemas de Numeração e Conversão de Bases
Sistemas Decimal, Binário, Octal e Hexadecimal
Bases Numéricas: Definição e Uso em Computação
Estamos acostumados com a base 10 (decimal), onde os algarismos válidos são de 0 a 9. No entanto, essa escolha é arbitrária. Os computadores são digitais e operam na base 2 (binária), usando apenas os algarismos 0 e 1, representados por sinais elétricos (ex: 0 Volts → 0; 5 Volts → 1).
Além da base 2, as bases Octal (base 8) e Hexadecimal (base 16) são comuns na computação por facilitarem a conversão com a base binária:
- Octal: Algarismos de 0 a 7.
- Hexadecimal: Algarismos de 0 a 9 e letras A a F.
Em geral, para uma base β ≥ 2, os algarismos válidos vão de 0 a β-1. Usamos subscritos para indicar a base, como 11₂ para binário. A ausência de subscrito indica base 10.
Veja a seguir a representação dos mesmos números em bases diferentes:
| Binário | 11010110₂ | 11010,001₂ |
| Octal | 326₈ | 32,1₈ |
| Decimal | 214₁₀ | 26,125₁₀ |
| Hexadecimal | D6₁₆ | 1A,2e0₁₆ |
Sistema Posicional e Forma Polinomial
Sistemas de numeração são posicionais, ou seja, a posição do dígito influencia seu valor. Exemplo em base 10:
347 = 3 × 10² + 4 × 10¹ + 7 × 10⁰
Em qualquer base β, a forma segue esse padrão, apenas troca-se o 10 por β
Veja o valor de casa número da base 2 representa em decimal:
| 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Lembre-se que para números fracionários, usamos potências negativas:
243,51 = 2×10² + 4×10¹ + 3×10⁰ + 5×10⁻¹ + 1×10⁻²
= 2×100 + 4×10 + 3×1 + 5×0,1 + 1×0,01
Conversão de Bases Numéricas
A conversão entre diferentes bases numéricas é um conceito fundamental na computação.
Para Decimal (de uma base β para decimal)
Para converter um número de qualquer base β para a base decimal, utilizamos sua forma polinomial. Cada dígito do número é multiplicado pela base elevada à potência correspondente à sua posição, começando da direita para a esquerda com a potência zero.
Pode-se fazer utilização da tabela que vimos antes também para facilitar a conversão.
- Exemplo para inteiros:
| 24 | 23 | 22 | 21 | 20 |
| 1 | 0 | 1 | 1 | 0 |
| 16 | 8 | 4 | 2 | 1 |
10110₂=1×2⁴ + 0×2³ + 1×2² + 1×2¹ + 0×2⁰ = 16+0+4+2+0 = 22₁₀
16 + 4 + 2 = 22₁₀
De Decimal (inteiros para uma base β)
Para converter um número inteiro da base decimal para outra base β, emprega-se o método das divisões sucessivas. O número decimal é dividido pela base β repetidamente, e o resto de cada divisão é o algarismo convertido. O processo continua até que o quociente seja zero. O número convertido é lido de baixo para cima (do último resto para o primeiro).
- Exemplo: Converter 19₁₀ para binário.
De Decimal (racionais para uma base β)
Para converter a parte fracionária de um número decimal para outra base (por exemplo, binário), utilizam-se multiplicações sucessivas pela base. O algarismo binário é a parte inteira do resultado da multiplicação, e a parte fracionária é usada na próxima multiplicação. A parte inteira do número decimal é convertida separadamente.
- Exemplo: Converter 0,5625₁₀ para binário.
Bases Octal e Hexadecimal: Conversão Direta
As bases octal e hexadecimal são amplamente utilizadas na computação por serem potências de 2, o que simplifica a conversão para binário. A conversão entre binário e octal/hexadecimal é direta e pode ser feita por agrupamento de bits.
Binário para Octal
Separe os algarismos binários em grupos de 3 bits, começando do bit menos significativo para o mais significativo. Cada grupo de 3 bits corresponde a um único algarismo octal.
- Exemplo: Converter 10010011101₂ para octal.
- 10 010 011 101₂
- 10₂ = 2₈
- 010₂ = 2₈
- 011₂ = 3₈
- 101₂ = 5₈
- Unindo: 2235₈.
Octal para Binário
Converta cada algarismo octal para seus 3 dígitos binários equivalentes.
- Exemplo: Converter 1366₈ para binário.
- 1₈ = 001₂
- 3₈ = 011₂
- 6₈ = 110₂
- 6₈ = 110₂
Assim, 1366₈ = 001 011 110 110₂.
Binário para Hexadecimal
Separe os algarismos binários em grupos de 4 bits (nibbles), novamente do bit menos significativo para o mais significativo. Cada grupo de 4 bits corresponde a um único algarismo hexadecimal.
- Exemplo: Converter 110010011101₂ para hexadecimal.
- 1001 1110 0011₂
- 1001₂ = 9₁₆
- 1110₂ = E₁₆
- 0011₂ = 3₁₆
- Unindo: 9E3₁₆.
Hexadecimal para Binário
Converta cada algarismo hexadecimal para seus 4 dígitos binários equivalentes.
Conversão por tabela:
| HEX | BIN |
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| HEX | BIN |
| 8 | 1000 |
| 9 | 1001 |
| A | 1010 |
| B | 1011 |
| C | 1100 |
| D | 1101 |
| E | 1110 |
| F | 1111 |
Exemplo: Converter A46F₁₆ para binário.
- A₁₆ = 1010₂
- 4₁₆ = 0100₂
- 6₁₆ = 0110₂
- F₁₆ = 1111₂
- Unindo: A46F₁₆ = 1010 0100 0110 1111₂
Representações Infinitas (Dízimas)
Nem todos os números racionais possuem uma representação finita em outras bases numéricas.
Por exemplo, o número 0,1₁₀ não tem uma representação binária finita, resultando em uma dízima periódica:
0,1₁₀ = 0,000110011…₂
Em sistemas computacionais, esses valores são armazenados como aproximações, o que pode levar a erros de arredondamento. Quando esses erros se acumulam, podem causar falhas significativas.
Um exemplo real foi o incidente do míssil Patriot, ocorrido durante a Guerra do Golfo. Um erro de cálculo no tempo, causado pela imprecisa representação de 0,1 segundos em 24 bits, resultou em um desvio de meio quilômetro, impedindo a interceptação de um míssil inimigo.
Bits, Bytes e Nibbles
- Bit: É a abreviação de “binary digit” (algarismo binário). Um bit é a menor unidade de informação em computação, representando um 0 ou um 1.
- Byte: Um conjunto de 8 bits. Na maioria das CPUs, a menor unidade de operação é um byte, e a memória é endereçada a byte.
- Nibble: O equivalente a meio byte, ou seja, 4 bits. É particularmente útil ao lidar com valores em hexadecimal.
- Palavra de dado: É a unidade natural de processamento de um sistema, uma sequência de bits de tamanho fixo processada em conjunto, por exemplo, 16 bits, 32 bits ou 64 bits.
Capacidade de Representação
Capacidade de Representação
A capacidade de representar valores em um sistema numérico depende da base e da quantidade de algarismos (dígitos/casas) disponíveis.
Em uma base β, com n algarismos, podemos armazenar βⁿ possibilidades de valores.
Na base 10:
- Com 1 dígito: 10 possibilidades (0–9).
- Com 2 dígitos: 10² = 100 possibilidades (0–99).
- Com n dígitos: 10ⁿ possibilidades.
Na base 2:
- Com 1 bit: 2¹ = 2 possibilidades (0–1).
- Com 2 bits: 2² = 4 possibilidades.
- Com n bits: 2ⁿ possibilidades.
Para inteiros sem sinal com w bits, os números podem variar de 0 (00…000) até 2ʷ−1 (11…111).
O próximo número, 2ʷ (100…000), não pode ser representado em w bits.
