Números
Aprenda como o computador lida com números e valores

Já vimos como o computador lida com a informação. Agora estamos prontos para compreender a grande diferença entre as operações aritméticas da máquina e as operações aritméticas na vida real.

Trabalhamos, em nosso cotidiano, com uma matemática de números reais onde o ponto inicial é o zero e o infinito o limite extremo para os valores. Assim, se somarmos o valor 3 ao valor 254, teremos como resultado o valor 257. Podemos somar qualquer quantidade que o resultado será sempre um valor maior que os dois valores envolvidos na soma.

No mundo do processador, os valores são manipulados como inteiros, com limites bem definidos. Por exemplo, vimos anteriormente (bits e bytes) que oito bits podem representar até 256 situações diferentes. Assim, assumimos que oito bits podem indicar valores de 0 a 255. Considere que 0 é um valor como outro qualquer.

Se somarmos o valor 3 ao valor 254, numa operação de oito bits, qual será o resultado? Lembre-se: a faixa válida para valores em oito bits vai do 0 ao 255.

A resposta certa é 1. Se não "captou" o mecanismo, pense no seguinte: ao "estourar" a faixa de valores para oito bits, o correto seria usar um nono bit e recomeçar a contagem do zero novamente. Mas, como não existe esse nono bit, então o valor volta a ser menor.

Acontece a mesma coisa numa subtração, pois não existem números negativos para o computador. Assim, subtraindo 3 de 1 o resultado será 254. Ainda está parecendo coisa de doido, não é mesmo?

Na verdade, o processador não perde o bit extra que apareceu na operação. Ele sinaliza a sua existência numa flag binária chamada "carry". Se o carry, depois de uma operação, apresentar o valor 1, então houve "estouro", tanto para soma, quanto para subtração. O carry funciona como o nosso conhecido "vai um" nas contas que aprendemos na escola primária.

Essa característica de limites está presente sempre, independente do tipo e poder do computador. A tabela a seguir ilustra as principais faixas numéricas com as quais lidamos.

8 bits de 0 a 255;
16 bits de 0 a 65.535;
32 bits de 0 a 4.294.967.295

Resumindo:

bit = 0 ou 1;
nible = 4 bits;
byte = 8 bits;
kbyte = kilobyte ou 1024 bytes;
mbyte = megabyte ou 1024 kbytes ou 1.048.576 bytes;
gbyte = gigabyte ou 1024 mbytes
                   
decimal binário hexadecimal
0 =          0 = 0
1 =          1 = 1
2 =         10 = 2
9 =       1001 = 9
10 =      1011 = A
11 =      1100 = B
15 =      1111 = F
16 =     10000 = 10
17 =     10001 = 11
31 =     11111 = 1F
32 =    100000 = 20
255 = 11111111 = FF
 
online