Nesta série de artigos vamos deslindar um assunto que para muitos é difícil de encaixar e para outros é como somar 1 + 1.
No primeiro capitulo desta série de artigos vamos abordar os sistemas numéricos.
Como a maioria dos leitores sabem, o computador não interpreta os números como nós e tem as suas limitações aritméticas. Isto porque o processador apenas trabalha com impulsos eléctricos e estes so podem tomar 2 valores: 0 e 1, representando assim a ausência e a presença, respectivamente, desses ditos impulsos.
Portanto estamos diante um sistema numérico binário.
Naturalmente, como nós pensamos num numero sempre no sistema decimal e limitamos a ter uma imagem mental de quantidade não nos apercebemos que de facto um numero, por exemplo o 123, pode ser representado da seguinte forma:
1*102 + 2*101 3*100 = 100 + 20 + 3 = 123
E os números decimais? Simples, vamos ver o exemplo 123,456:
1*102 + 2*101 + 3*100 + 4*10-1 + 5*10-2 + 6*10-3
Ou seja, cada dígito à esquerda da vírgula representa um valor entre 0 e 9 multiplicado por uma potência de base 10 cujo expoente aumenta com a distância da vírgula. Nos números à direita da vírgula é um valor de 0 a 9 multiplicado por uma potência de base 10 com um expoente negativo que cresce à medida que se afasta da vírgula.
Sim eu sei, lá vem a Matemática! Mas não se preocupem muito com isso, trata-se de Matemática simples.
Agora vamos passar a ao sistema binário.
No sistema binário só podemos encontrar 2 valores o 0 e o 1, e a partir destes 2 dígitos podemos facilmente obter qualquer valor decimal correspondente.
A maneira de converter um binário num decimal é bastante similar ao que fizemos com os números decimais. O sistema binário não permite dígitos maiores que 0 e 1 e a potência é sempre de base 2 em vez de base 10.
Vamos então converter o seguinte número binário para decimal: 11001010.
1*27 * 1*26 + 0*25 + 0*24 + 1*23 + 0*22 + 1*21 + 0*20 = 128 + 64 + 8 + 2 = 202
Simples, não é?
Para fazer a operação inversa é um pouco pior, temos de dividir sucessivamente um número decimal por 2 até o resultado ser menor que 2. Depois temos de colocar o último resultado e os restos anteriores na ordem como o exemplo a seguir.
Ou seja:
O valor binário é 1100100.
As representações dos números binários podem variar. Por exemplo, o numero 5 no sistema binário representa-se por 101, mas pode ser representado por 0000101 ou 00000101 ou 0000000000000000000101, isto porque tal como no sistema decimal os zeros à esquerda não têm significado nenhum. Cada digito binário é conhecido por bit (binary digit).
Agora que sabemos converter de binário para decimal e vice-versa, vamos ao que interessa.
Matematicamente podemos representar qualquer valor decimal em binário sem limitações de tamanho, mas num processador as coisas já não são bem assim, este vai agrupar os bits numa quantidade especifica de bits. Ou seja pode agrupar em 4 bits (conhecido por nibble), 8 bits (conhecido por byte), 16 bits ( conhecido como word) e mais adiante.
E vamos ao nosso último exemplo de hoje: representação do número 5 num nibble, num byte e num word.
- Nibble: 0101 (4 bits)
- Byte: 00000101 (8 bits)
- Word: 0000000000000101 (16 bits)