Introdução3.1
No campo da tecnologia digital, você encontrará diversos sistemas de numeração em uso, embora exista uma preferência clara pelos sistemas decimal, binário e hexadecimal. Enquanto nós, seres humanos, operamos utilizando números decimais, os sistemas digitais funcionam estritamente por meio de números binários. O hexadecimal atua como um sistema que facilita para você a manipulação de números binários, sendo utilizado principalmente em projetos e representações para simplificar essas etapas, embora nunca seja aplicado na implementação física final.
Apesar dessas distinções, é fundamental que você note que os três sistemas são definidos e operam sob a mesma lógica. Por conta da sua familiaridade, iniciaremos o estudo pelo sistema decimal, o que permitirá que você transponha o aprendizado para as demais bases com bastante facilidade.
Sistema decimal3.2
O sistema decimal é composto por dez numerais ou símbolos, que compreendem os algarismos $0, 1, 2, 3, 4, 5, 6, 7, 8$ e $9$. Através do uso desses símbolos como dígitos de um número, você pode expressar qualquer quantidade desejada. Este sistema, também chamado de base 10 por possuir dez dígitos distintos (considerando que o $0$ entra na conta), originou-se possivelmente do fato de as pessoas possuírem dez dedos nas mãos. Essa relação faz sentido etimologicamente, já que a palavra dígito deriva de "dedo" em latim.
Você deve compreender que o sistema decimal é um sistema de valor posicional, o que significa que o valor de cada dígito dependerá de sua posição específica no número. Considere, por exemplo, o número decimal $453$. Sabemos que o dígito $4$ representa, na verdade, $4$ centenas, o $5$ representa $5$ dezenas e o $3$ representa $3$ unidades. Além disso, como o dígito $4$ possui o maior peso entre os três, ele é denominado dígito mais significativo (most significant digit, ou MSD), enquanto o dígito $3$, por ter o menor peso, é chamado de dígito menos significativo (least significant digit, ou LSD).
Ao analisarmos um exemplo fracionário como $27,35$, percebemos que este número é igual a duas dezenas mais sete unidades somadas a três décimos e cinco centésimos, ou aritmeticamente, $(2 \times 10) + (7 \times 1) + (3 \times 0,1) + (5 \times 0,01)$. A vírgula decimal é utilizada para que você separe a parte inteira da parte fracionária do número. Consequentemente, as posições relativas à vírgula terão pesos que podem ser expressos em potências de $10$, que é a potência da base. Isso é ilustrado na figura a seguir, na qual o número $2745,214$ é representado, demonstrando como a vírgula separa as potências de $10$ com expoentes positivos das potências com expoentes negativos.

O número $2745,214$ é, portanto, equivalente à seguinte expressão matemática:
$$ \begin{split} &(2 \times 10^{+3}) + (7 \times 10^{+2}) + (4 \times 10^1) \\ + &(5 \times 10^0) + (2 \times 10^{-1}) + (1 \times 10^{-2}) + (4 \times 10^{-3}) \end{split} $$
Na verdade, você deve considerar que todo número é uma soma de produtos do valor de cada dígito pelo seu respectivo valor posicional (peso).
Contagem decimal3.2.1
A contagem sempre se inicia pelo número composto pelo único dígito que representa a menor quantidade da base, que quase sempre será o $0$ (zero), independente de qual sistema você esteja utilizando. Dizemos, portanto, que esse dígito ocupa a posição das unidades. Você deve somar os valores até atingir a próxima posição de maior peso e recomeçar com zeros nas posições anteriores.
Esse processo continua até atingir a contagem $99$, ponto no qual você soma $1$ à terceira posição e recomeça com zeros nas duas primeiras. O mesmo procedimento é seguido até atingir a contagem que você desejar. Observe a imagem abaixo para ter uma noção um pouco melhor de como esse processo funciona.

Note que a posição das unidades, que é o dígito menos significativo do número, varia de modo crescente a cada incremento na contagem, enquanto a posição das dezenas varia de modo crescente a cada $10$, as centenas a cada $100$ e assim por diante.
Um ponto importante que normalmente estamos interessados em saber é quantos números podemos representar em uma base com uma quantidade $N$ de dígitos. Essa conta é feita sempre pela base do sistema elevada à enésima potência. Como você está operando na base decimal, isso significa que a $\text{quantidade de números} = 10^{N}$. Ou seja, com um número de $2$ dígitos é possível representar $10^{2} = 100$ números diferentes, o que significa que você pode contar de $0$ até $99$ (lembrando que o zero entra na conta).
Sistema Binário3.3
Infelizmente, apesar de já ter sido utilizado no passado, o sistema decimal não é conveniente para ser implementado em sistemas digitais modernos. Por exemplo, seria desnecessariamente complicado projetar um equipamento eletrônico para que ele operasse com dez níveis diferentes de tensão (onde cada um representaria um caractere decimal de $0$ a $9$). Contudo, é muito mais simples projetar circuitos onde existam apenas dois níveis de tensão, e por esse motivo quase todos os sistemas digitais utilizam o sistema de numeração binário, de base $2$, como o sistema básico para suas operações.
Uma vez que o sistema contém apenas dois valores, você terá apenas $2$ símbolos (dígitos) para representar informações: $0$ e $1$. Contudo, mesmo com essa limitação, é possível representar todos os números que você também é capaz de representar na base decimal. Essa afirmação também é válida para qualquer outro sistema posicional onde apenas a base mude, como o hexadecimal que você verá a seguir. Na verdade, tudo o que você aprendeu para o sistema decimal vale aqui, bastando trocar a base $10$ pela base $2$.
Para ler as posições em relação à vírgula binária, as potências de $2$ à esquerda da vírgula são positivas enquanto as à direita são negativas. Tomemos como exemplo o número $101,11_{2}$. Para encontrar seu equivalente no sistema decimal, basta que você efetue o somatório dos produtos do valor de cada dígito ($0$ ou $1$) pelo seu respectivo peso:
$$ \begin{split} 101,11_{2} &= (1 \times 2^{2}) + (0 \times 2^{1}) + (1 \times 2^{0}) + (1 \times 2^{-1}) + (1 \times 2^{-2}) \\ &= 4 + 0 + 1 + 0,5 + 0,25 \\ &= 5,75_{10} \end{split} $$
Note que na operação anterior foram subscritos os números $2$ e $10$ para indicar a base na qual o número em questão é expresso, o que será feito regularmente durante a disciplina para que você possa diferenciar a base numérica do número.
Considere que todo número sem uma base subscrita (aquele número escrito pequeno abaixo do menor dígito) estará, por padrão, na base $10$.
No sistema binário, o termo dígito binário (binary digit) é quase sempre abreviado como bit, termo que utilizaremos no restante da disciplina. Além disso, os termos de dígito mais ou menos significativos são referidos nos números binários por bit mais significativo (most significant bit, ou MSB) para o da esquerda, que possui maior peso, e bit menos significativo (least significant bit, ou LSB) para o da direita, que possui menor peso.
Contagem binária3.3.1
Quando você estiver operando com a base binária, estará normalmente restrito a um número específico de bits definidos pelo hardware. Utilizaremos aqui, de forma arbitrária, números binários de $4$ bits para ilustrar o processo de contagem.
A sequência mostrada na figura abaixo começa com todos os bits em $0$, o que chamamos de contagem zero. Para cada contagem sucessiva, você deve adicionar um ao bit menos significativo. Quando esse bit for igual a zero, teremos $0 + 1 = 1$, de forma que seu novo valor será $1$.
Entretanto, caso seu valor já seja um, teremos $1 + 1 = 2_{10} = 10_{2}$. Como não podemos colocar $10_{2}$ em apenas uma posição (já que é admitido apenas um dígito por posição), você deve deixar o dígito como zero e levar esse $1$ que ficou na frente para a próxima casa. Esse é o processo do vai-um, onde você o soma ao dígito da casa seguinte. Esse procedimento é seguido até que o vai-um não ocasione mais nenhum transporte para frente. A imagem abaixo detalha a contagem para os $4$ bits.

Por fim, assim como você viu anteriormente, caso deseje saber quantos números pode representar com $N$ bits (digamos, por agora, que $N=8$), você pode obter esse valor elevando a base $2$ à potência $N$. Ou seja, $2^{N} = 2^{8} = 256$, o que significa que você pode contar de $0$ até $255$ com $8$ bits.
Sistema Hexadecimal3.4
O sistema de numeração hexadecimal, ou simplesmente hexa, utiliza a base $16$. Portanto, você utilizará os dígitos de $0$ a $9$ somados às letras $A, B, C, D, E$ e $F$ como símbolos. Assim como nas outras bases, cada símbolo recebe pesos baseados em sua posição, agora utilizando potências de $16$.
Você deve notar que as letras representam os números de $10$ a $15$, ou seja, $A=10$, $B=11$, $C=12$, $D=13$, $E=14$ e $F=15$. Por exemplo, você pode converter o número $1A3,B_{16}$ através da seguinte operação:
$$ \begin{split} 1A3,B_{16} &= (1 \times 16^{2}) + (A \times 16^{1}) + (3 \times 16^{0}) + (B \times 16^{-1}) \\ &= (1 \times 256) + (10 \times 16) + (3 \times 1) + \left(11 \times \frac{1}{16}\right) \\ &= 256 + 160 + 3 + 0,6875 \\ &= 419,6875_{10} \end{split} $$
A imagem abaixo apresenta as relações entre os sistemas hexadecimal, decimal e binário. Note que os dígitos hexadecimais são representados por um grupo de quatro dígitos binários.
| Hexadecimal | Decimal | Binário |
|---|---|---|
| 0 | 0 | 0000 |
| 1 | 1 | 0001 |
| 2 | 2 | 0010 |
| 3 | 3 | 0011 |
| 4 | 4 | 0100 |
| 5 | 5 | 0101 |
| 6 | 6 | 0110 |
| 7 | 7 | 0111 |
| Hexadecimal | Decimal | Binário |
|---|---|---|
| 8 | 8 | 1000 |
| 9 | 9 | 1001 |
| A | 10 | 1010 |
| B | 11 | 1011 |
| C | 12 | 1100 |
| D | 13 | 1101 |
| E | 14 | 1110 |
| F | 15 | 1111 |
Contagem hexa3.4.1
Para que você realize a contagem em hexa, cada dígito incrementado percorre o intervalo de $0$ até $F$. Quando atinge o dígito $F$, o próximo valor será $10_{16}$, o que significa que a posição atual fica em zero e ocorre o transporte de um para a próxima casa. Esse vai-um é acrescido ao dígito do número naquela posição, tornando-se um novo vai-um caso o número também seja um dígito $F$ ($15_{10}$).
Observe alguns exemplos nas sequências abaixo:
- $38, 39, 3A, 3B, 3C, 3D, 3E, 3F, 40, 41, 42$
- $6F8, 6F9, 6FA, 6FB, 6FC, 6FD, 6FE, 6FF, 700$
Você deve notar que, quando o dígito de uma posição é $9$, ele não gera um vai-um como ocorre na base $10$, mas torna-se o dígito $A$ quando é incrementado. O vai-um ocorre com o acréscimo do dígito F.
Por fim, com $N$ dígitos hexa você pode contar de $0$ até o valor decimal $16^{N} - 1$, resultando em um total de $16^{N}$ valores diferentes. Por exemplo, com três dígitos hexa é possível contar de $000_{16}$ a $FFF_{16}$, o que corresponde à faixa de $0_{10}$ a $4095_{10}$, em um total de $4096 = 16^{3}$ valores distintos.
O sistema hexadecimal é extremamente útil quando você deseja representar de uma forma mais compacta os números binários. Isso será melhor trabalhado por você no capítulo seguinte.
Questões3.5
- Explique, com suas palavras, por que o sistema binário é o preferido para a implementação de hardware em vez do sistema decimal que usamos no dia a dia.
- Se um sistema digital utiliza um barramento de endereços de $12$ bits, quantos endereços de memória diferentes você consegue representar e qual o maior deles?
- Converta o número binário $1101,101_{2}$ para a base decimal. Apresente o desenvolvimento utilizando as potências de $2$.
- O valor $2C5_{16}$ corresponde a qual valor na base decimal? Lembre-se de converter a letra $C$ para seu valor numérico (12) correspondente antes de aplicar o peso.
- Escreva os próximos $5$ números da sequência hexadecimal a partir do valor $A 9 E_{16}$.
Próximos passos3.6
No próximo capítulo, Conversão entre Bases, veremos como trabalhar com sistemas numéricos específicos para esta disciplina. Você aprenderá como cada sistema é utilizado e em quais cenários eles podem ser mais úteis para as suas atividades.