Representação Interna

Para que seja possível armazenar e manipular dados no computador é necessário representá-los internamente de alguma forma. Nós seres humanos, representamos nossos números usando um sistema que chamamos de sistema decimal (ou sistema na base 10). Esse sistema, que se originou do fato de utilizarmos os 10 dedos das mãos para realizarmos nossas contas, possui 10 diferentes dígitos para representar as infinitas quantidades e valores que desejamos (0 1 2 3 4 5 6 7 8 e 9).

Nos caso dos computadores digitais, a notação que é utilizada possui apenas 2 algarismos ou dígitos para representar uma quantidade desejada, o 0 e o $ 1$ . Esse sistema de representação é chamado de sistema binário (ou sistema na base 2) e utiliza a noção de ligado/desligado, ou verdadeiro/falso, ou finalmente $ 0/1$ 3.1 .

Pelo fato de um número precisar de muitos algarismos para ser expresso no sistema binário, outras formas de representação auxiliares também são utilizadas nos computadores, como por exemplo a representação pelo sistema hexadecimal (ou sistema na base 16) que utiliza 16 dígitos (0 1 2 3 4 5 6 7 8 9 A B C D E F), e a representação no sistema octal (ou sistema na base 8) que utiliza 8 dígitos (0 1 2 3 4 6 7 8).

Na Tabela 3.1 são mostradas as quantidades de 0 a 15 representadas nos diferentes sistemas mencionados


Tabela 3.1: Equivalência entre sistemas numéricos de representação. O subscrito identifica em que base o número está escrito
$ { decimal} $ binário$ $ hexadecimal$ $ octal$ $
$ 0_d $ $ 0000_b $ $ 0_h $ $ 0_o $
$ 1_d $ $ 0001_b $ $ 1_h $ $ 1_o $
$ 2_d $ $ 0010_b $ $ 2_h $ $ 2_o $
$ 3_d $ $ 0011_b $ $ 3_h $ $ 3_o $
$ 4_d $ $ 0100_b $ $ 4_h $ $ 4_o $
$ 5_d $ $ 0101_b $ $ 5_h $ $ 5_o $
$ 6_d $ $ 0110_b $ $ 6_h $ $ 6_o $
$ 7_d $ $ 0111_b $ $ 7_h $ $ 7_o $
$ 8_d $ $ 1000_b $ $ 8_h $ $ 10_o $
$ 9_d $ $ 1001_b $ $ 9_h $ $ 11_o $
$ 10_d $ $ 1010_b $ $ A_h $ $ 12_o $
$ 11_d $ $ 1011_b $ $ B_h $ $ 13_o $
$ 12_d $ $ 1100_b $ $ C_h $ $ 14_o $
$ 13_d $ $ 1101_b $ $ D_h $ $ 15_o $
$ 14_d $ $ 1110_b $ $ E_h $ $ 16_o $
$ 15_d $ $ 1111_b $ $ F_h $ $ 17_o $


A quantidade de algarismos necessária para representar um determinado número varia de acordo com o sistema de representação utilizado. Se o sistema é decimal, o maior número que pode ser representado utilizando N algarismos será $ 10^N$ . Por exemplo, se nos restringimos a números de dois algarismos, no sitema decimal só poderíamos escrever 100 números, de 0 a 99 ($ 10^2=100$ ). Para números de três algarimos, poderíamos escrever 1000 números, de 0 a 999 ($ 10^3=100$ ) e assim por diante.

No sistema binário acontece da mesma forma. Se dispomos de 4 algarismos, poderemos escrever $ 2^4=16$ números, de 0 a 15. Se dispomos de 8 algarismos, poderemos escrever $ 2^8=256$ números, de 0 a 255 e assim por diante. Note que é por isso que a sequência de números

$\displaystyle 2^1, 2^2, 2^3, 2^4, 2^5, 2^6, 2^7, 2^8, 2^9, 2^{10},
\ldots = 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, \ldots
$

aparece com tanta frequência na informática. Um único algarismo binário é chamado bit, uma sequência de 8 bits é um byte e uma sequência de 16 bits é uma palavra.

A lógica utilizada para realizar a conversão de números entre diferentes bases é similar a lógica que usamos para representar um número no sistema decimal, ou seja, os algarismos irão representar diferentes quantidades dependendo da sua posição no número em questão. Por exemplo, no número 25, o algarismo '5' representa a quantidade 5, já no número 58, o algarismo '5' representa a quantidade 50, pois $ 58 = 5\;10^1+8\;10^0$ , sendo que os expoentes de 10 expressam a ordem que o algarismo ocupa no número. Veja esse outro exemplo,

$\displaystyle 2679_d = 2\;10^{3}+6\;10^{2}+7\;10^{1}+9\;10^0$

Em um sistema de representação binário acontece da mesma maneira. Por exemplo,

$\displaystyle 100110_b=1\;2^5+0\;2^4+0\;2^3+1\;2^2+ 1\;2^1+0\;2^0 = 32 + 0 + 0 + 4 + 2 + 0 =
38_d
$

root 2009-03-12