> For the complete documentation index, see [llms.txt](https://bit-by-bit.gitbook.io/embedded-systems/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bit-by-bit.gitbook.io/embedded-systems/sistemas-de-numeracao.md).

# Apêndice A: Sistemas de Numeração

Texto sobre sistemas de numeração posicionais: decimal, binário e hexadecimal.

## Sistemas de Numeração

Um sistema de numeração define um conjunto regras para formação de numerais. Para o estudo de um sistema de numeração é importante observar as diferenças entre número, numeral e algarismos. Um número expressa a ideia de quantidade, por exemplo: quando estamos contando dinheiro. O numeral é toda representação de um número, seja ela escrita ou falada, por exemplo: os numerais cardinais “Um”, “Dois”, “Três”.  Os algarismos são símbolos que representam os números, por exemplo: 1, 8, 33, 255.

Outra característica de um sistema de numeração é chamada de base. A base de um sistema numérico é definida de acordo com o número de símbolos utilizados para representa o sistema, esses símbolos podem ser chamados de dígitos, portanto um algarismo é formado através de um conjunto de dígitos, por exemplo: o número 5 tem um dígito já o número 255 possui três dígitos.

## Sistema de numeração decimal

O sistema de numeração mais utilizado no mundo é o decimal. Esse sistema numérico possui 10 símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9.&#x20;

O sistema de numeração decimal é posicional, pois a posição que o dígito ocupa na representação do número faz com que a quantidade expressa por tal seja alterada. Portanto, para um sistema posicional, um número de valor ‘N’ pode ser representado numa base ‘b’ conforme o seguinte polinômio:

$$
N\_b = N\_i.b^i + N\_{i-1}.b^{i-1}+ ... + N\_1.b^1+N\_0.b^0
$$

Por exemplo, o número decimal 235 é representado da seguinte maneira:

$$
235\_{10} = 2.10^2 + 3.10^1+ 5.10^0 = 200+30+5
$$

## Sistema de numeração binário

Embora o sistema decimal seja o mais utilizado no nosso dia a dia, os sistemas digitais como os computadores não operam utilizando esse sistema, em vez disso, eles processam números binários.

O sistema de numeração binário também é posicional e utiliza os símbolos 0 e 1 para representação dos números. O bit (do inglês, *binary digit*) é a menor quantidade de informação que um sistema digital pode armazenar, podendo apresentar o valor 0 ou 1.

Um modo rápido e fácil para conversão de números binários para o sistema decimal é destacar os pesos de cada posição dos bits e somar os pesos somente onde o bit possui valor 1. O Quadro 1‑1 exibe o processo de conversão.

| 8 | 4 | 2 | 1 | **Valor decimal**  |
| - | - | - | - | ------------------ |
| 0 | 0 | 0 | 0 | 0                  |
| 0 | 0 | 0 | 1 | 1                  |
| 0 | 0 | 1 | 0 | 2                  |
| 0 | 0 | 1 | 1 | 2 + 1 = 3          |
| 0 | 1 | 0 | 0 | 4                  |
| 0 | 1 | 0 | 1 | 4 + 1 = 5          |
| 0 | 1 | 1 | 0 | 4 + 2 = 6          |
| 0 | 1 | 1 | 1 | 4 + 2 + 1 = 7      |
| 1 | 0 | 0 | 0 | 8                  |
| 1 | 0 | 0 | 1 | 8 + 1 = 9          |
| 1 | 0 | 1 | 0 | 8 + 2 = 10         |
| 1 | 0 | 1 | 1 | 8 + 2 + 1 = 11     |
| 1 | 1 | 0 | 0 | 8 + 4 = 12         |
| 1 | 1 | 0 | 1 | 8 + 4 + 1 = 13     |
| 1 | 1 | 1 | 0 | 8 + 4 + 2 = 14     |
| 1 | 1 | 1 | 1 | 8 + 4 + 2 + 1 = 15 |

A conversão de um número decimal para um número de outra base é feito realizando divisões sucessivas enquanto o quociente é diferente de zero. O número convertido é obtido analisando o resto de cada operação de divisão. Por exemplo, o número decimal 235 convertido para o sistema binário:

&#x20;$$\begin{aligned} \frac{235}{2} &= 117, \&resto=1 \  \frac{117}{2} &= 58, \&resto=1 \  \frac{58}{2} &= 29, \&resto=0 \  \frac{29}{2} &= 14, \&resto=1 \  \frac{14}{2} &= 7, \&resto=0 \  \frac{7}{2} &= 3, \&resto=1 \  \frac{3}{2} &= 1, \&resto=1\ \frac{1}{2} &= 0, \&resto=1 \end{aligned}$$&#x20;

Analisando os resultados obtidos de baixo para cima, obtêm-se a sequência 11101011.

| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | **Valor decimal**               |
| --- | -- | -- | -- | - | - | - | - | ------------------------------- |
| 1   | 1  | 1  | 0  | 1 | 0 | 1 | 1 | 128 + 64 + 32 + 8 + 2 + 1 = 235 |

Vimos que os bits são numerados com 0, 1, 2, 3 e assim em diante, sempre da direita para a esquerda. É definido como bit mais significativo, o bit que está mais a esquerda da sequência de dígitos que representa o número, enquanto que o bit menos significativo é utilizado para se referir ao bit que está mais a direita.

## Sistema de numeração hexadecimal

Outra representação dos números binários pode ser feita a partir do sistema hexadecimal. Esse sistema possui 16 símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Os números hexadecimais são menores e mais fáceis de escrever e de se lembrar, utilizando esse sistema é possível representar 4 bits através de um único dígito, pois .

| 8 | 4 | 2 | 1 | **Decimal** | **Hexadecimal** |
| - | - | - | - | ----------- | --------------- |
| 0 | 0 | 0 | 0 | 0           | 0               |
| 0 | 0 | 0 | 1 | 1           | 1               |
| 0 | 0 | 1 | 0 | 2           | 2               |
| 0 | 0 | 1 | 1 | 3           | 3               |
| 0 | 1 | 0 | 0 | 4           | 4               |
| 0 | 1 | 0 | 1 | 5           | 5               |
| 0 | 1 | 1 | 0 | 6           | 6               |
| 0 | 1 | 1 | 1 | 7           | 7               |
| 1 | 0 | 0 | 0 | 8           | 8               |
| 1 | 0 | 0 | 1 | 9           | 9               |
| 1 | 0 | 1 | 0 | 10          | A               |
| 1 | 0 | 1 | 1 | 11          | B               |
| 1 | 1 | 0 | 0 | 12          | C               |
| 1 | 1 | 0 | 1 | 13          | D               |
| 1 | 1 | 1 | 0 | 14          | E               |
| 1 | 1 | 1 | 1 | 15          | F               |

O processo de conversão decimal para hexadecimal segue a mesma regra da conversão para o sistema binário. Por exemplo, o processo de conversão do valor 235 em hexadecimal:

$$
\begin{aligned} \frac{235}{16} &= 14, \&resto=11=B\  \frac{14}{16} &= 0, \&resto=14=E
\end{aligned}
$$

Analisando os resultados obtidos de baixo para cima, obtêm-se a sequência 0xEB ou EBH.

| 16 | 1 | Valor              |
| -- | - | ------------------ |
| E  | B | 14x16 + 11x1 = 235 |
