sábado, 9 de março de 2013


Os bits e os bytes

Se você já usou um computador por mais de cinco minutos, provavelmente ouviu as palavrasbits bytes. A capacidade da memória RAM e do disco rígido, assim como o tamanho dos arquivos são medidos em bytes, quando examinamos em um visualizador de arquivos.
Você pode ouvir um comercial que diga: "este computador possui um processador de 64 bits com 4 gigabytes de memória RAM e 512 gigabytes de espaço no disco rígido". 
Números decimais. A maneira mais fácil de se compreender os bits é compará-los a algo que você já conhece: os dígitos. Um dígito é um local que pode conter valores numéricos entre 0 e 9. Dígitos normalmente são combinados em grupos para criar números maiores. Por exemplo, 6.357 possui quatro dígitos. Sabe-se que, no número 6.357, o 7 ocupa a posição de unidade, enquanto o 5 ocupa a posição de dezena, o 3 ocupa a posição de centena e o 6 ocupa a posição de milhar. Assim, caso queira ser explícito, poderá expressar esse número da seguinte maneira:
(6 * 1000) + (3 * 100) + (5 * 10) + (7 * 1) = 6000 + 300 + 50 + 7 = 6357
Uma outra maneira de expressá-lo seria utilizando potências de 10. Suponhamos que o conceito de "elevado à potência de" seja representado pelo símbolo "^" ("10 ao quadrado" seria escrito como "10^2"). Assim uma outra maneira de expressar esse número é:
(6 * 10^3) + (3 * 10^2) + (5 * 10^1) + (7 * 10^0) = 6000 + 300 + 50 + 7 = 6357
O que se pode perceber nessa expressão é que cada dígito é um marcador de posição para a próxima potência de 10, começando no primeiro dígito com 10 elevado à potência de zero.
Isso deve ser considerado cômodo, já que trabalhamos com dígitos decimais todos os dias. Mas o interessante sobre sistemas numéricos é que não existe nada que o force a ter 10 valores diferentes em um dígito. Nosso sistema decimal provavelmente se desenvolveu porque possuímos 10 dedos - caso viéssemos a evoluir para apenas oito, poderíamos ter um sistema baseado na mesma quantidade de dígitos. Você pode criar sistemas baseados em qualquer quantidade de dígitos. Na verdade, existem várias boas razões para utilizar diferentes bases em diferentes situações.
Bits
Os computadores operam utilizando o sistema numérico baseado em 2 dígitos, também conhecido como sistema numérico binário, assim como o sistema numérico baseado em 10 dígitos é conhecido como sistema numérico decimal. A razão pela qual os computadores utilizam o sistema baseado em 2 dígitos é que isso torna muito mais fácil implementá-los com a tecnologia eletrônica atual. É possível conectar e montar computadores que operam na base de 10 dígitos, mas eles seriam extremamente caros. Por outro lado, os computadores binários são relativamente baratos.
Por isso os computadores usam números binários e, conseqüentemente,dígitos binários no lugar de dígitos decimais. A palavra bit é a abreviação das palavras "Binary digIT" (dígito binário). Enquanto os dígitos decimais possuem 10 valores possíveis, que vão de 0 a 9, os bits possuem apenas dois: 0 e 1. Portanto, um número binário é composto apenas de 0s e 1s, como por exemplo: 1011. De que maneira se descobre qual é o valor do número binário 1011? Você o faz da mesma forma que fizemos anteriormente para 6357, mas utilizará a base de 2 dígitos ao invés de 10. Assim:
(1 * 2^3) + (0 * 2^2) + (1 * 2^1) + (1 * 2^0) = 8 + 0 + 2 + 1 = 11

Você pode observar que em números binários cada bit comporta o valor das potências crescentes de 2. Isso torna a contagem em binários consideravelmente fácil. Contando em decimais e binários, começando em zero e indo até 20, fica assim:
     0   =   0
       1   =   1
       2  =   10
       3  =   11
       4  =  100
       5  =  101
       6  =  110
       7  =  111
       8  = 1000
       9  = 1001
      10 =  1010
      11 =  1011
      12 =  1100
      13 =  1101
      14 =  1110
      15 =  1111
      16 = 10000
      17 = 10001
      18 = 10010
      19 = 10011
      20 = 10100
Observando essa seqüência, você percebe que 0 e 1 são os mesmos para os sistemas numéricos decimal e binário. No número 2, no entanto, observa a primeira repetição no sistema binário. Se um bit é 1, e você soma 1 a ele, o bit torna-se 0 e o próximo torna-se 1. Na transição de 15 para 16 esse efeito passa por 4 bits, transformando 1111 em 10000.
Bytes
Os bits dificilmente estão sozinhos nos computadores. Normalmente são agrupados em conjuntos de 8 bits, chamados bytes. Por que existem 8 bits em um byte? Seria o mesmo que perguntar: "por que há 12 ovos em uma dúzia". O byte de 8 bits é algo que as pessoas estabeleceram através de tentativas e erros durante os últimos 50 anos.
Com 8 bits em um byte é possível representar 256 valores, de 0 a 255, como mostrado abaixo:
         0   = 00000000
         1   = 00000001
         2   = 00000010
              ...
         254 = 11111110
         255 = 11111111

Bytes: o padrão ASCII
Os bytes são freqüentemente utilizados para comportar caracteres individuais em um documento de texto. No sistema de caracteres ASCII, cada valor binário entre 0 e 127 está associado a um caractere específico. A maioria dos computadores estende o sistema ASCII, para utilizar a gama completa dos 256 caracteres disponíveis em um byte. Os últimos 128 caracteres comportam elementos especiais, como caracteres acentuados de diversas línguas como o português.
Você pode ver os 127 códigos padrão da tabela ASCII, abaixo. Computadores armazenam documentos de texto, tanto no disco quanto na memória, utilizando esses códigos. Se você utiliza o Bloco de Notas do Windows 95/98 para criar um arquivo de texto contendo as palavras "Four score and seven years ago" (quatro pontos e sete anos atrás), o Bloco de Notas usaria 1 byte de memória por caractere (incluindo 1 byte para cada espaço entre as palavras, caractere 32 da tabela ASCII). Quando o Bloco de Notas armazena a sentença em um arquivo no disco, o arquivo também irá conter 1 byte por caractere e por espaço.
Faça esse experimento: abra um novo arquivo no Bloco de Notas e insira a frase "Four score and seven years ago". Salve o arquivo no disco com o nome de getty.txt. Utilize então o Explorer e veja o tamanho do arquivo. Você irá descobrir que o arquivo ocupa um espaço de 30 bytes no disco: 1 byte para cada caractere. Se você adicionar outra palavra ao final da sentença e salvar novamente, o tamanho do arquivo irá subir para o número referente de bytes. Cada caractere consome um byte.
Se você olhasse para um arquivo como um computador o faz, veria que cada byte contém um número, não uma letra; o número é o código ASCII que corresponde ao caractere (veja abaixo). Desse modo, os números para o arquivo no disco são:
        F  o   u   r     a   n   d      s   e   v   e   n
       70 111 117 114 32 97 110 100 32 115 101 118 101 111

Olhando a tabela ASCII, você pode observar uma correspondência entre cada caractere e o código ASCII utilizado. Observe o uso do 32 para espaço - 32 é o código ASCII para espaço. Poderíamos expandir esses números decimais para números binários (assim, 32=00100000), se quiséssemos ser tecnicamente corretos. Na realidade, é assim que o computador lida com as coisas.

Muitos bytes

Quando se fala em uma grande quantidade de bytes, utilizamos prefixoscomo kilo, mega e giga, para criar outros termos: kilobyte, megabyte e gigabyte (também abreviados para K, M e G, como em Kbytes, Mbytes e Gbytes ou KB, MB e GB). A tabela a seguir mostra os multiplicadoresbinários :
Nome
Abrev.
Tamanho
Kilo
K
 
210 = 1.024
Mega
M
 
220 = 1.048.576
Giga
G
 
230 = 1.073.741.824
Tera
T
 
240 = 1.099.511.627.776
Peta
P
250 = 1.125.899.906.842.624
Exa
E
260 = 1.152.921.504.606.846.976
Zetta
Z
270 = 1.180.591.620.717.411.303.424
Yotta
Y
280 = 1.208.925.819.614.629.174.706.176
Você pode perceber, através desse quadro, que kilo corresponde a aproximadamente mil; mega, cerca de um milhão; giga, um bilhão e assim por diante. Quando alguém diz: "este computador tem um disco rígido de 2 giga", o que está querendo dizer é que o disco rígido pode armazenar 2 gigabytes, aproximadamente 2 bilhões de bytes ou exatamente 2.147.483.648 bytes. Como seria possível você precisar de 2 gigabytes de espaço? Se você considerar que um CD armazena 650 megabytes, perceberá que o equivalente a apenas três CDs de dados ocuparia o disco rígido inteiro! Bases de dados de terabyte são comuns nos dias de hoje e, provavelmente, já devem haver algumas bases de petabyte sendo utilizadas pelo Pentágono(em inglês).
Aritmética binária
A aritmética binária funciona exatamente como a aritmética decimal, exceto pelo fato de que o valor de cada bit pode ser apenas 0 ou 1. Para perceber um pouco da aritmética binária, vamos começar com uma adição decimal e ver como funciona. Suponha-se que queiramos somar 452 e 751:
      452
    + 751
      ---
       1203  
Para somar esses números, você começa pela direita: 2 + 1 = 3. Sem problemas. A seguir, 5 + 5 = 10, conserva o zero e transporta o 1 à próxima soma ("vai um"). A seguir, 4 + 7 + 1 (devido ao vai um) = 12, então, mantém o 2 e transporta o 1. Por fim, 0 + 0 + 1 = 1. A resposta então é 1203.
A adição binária funciona exatamente da mesma maneira:
      010
    + 111
      ---
       1001  
Começando pela direita, 0 + 1 = 1 para o primeiro dígito. Não existe vai um. Você tem 1 + 1 = 10 para o segundo dígito, então, mantém o 0 e transporta o 1. Para o terceiro dígito, 0 + 1 + 1 = 10, mantenha então o zero e transporte 1. Para o último dígito, 0 + 0 + 1 = 1. Assim, a resposta é 1001. Se você traduzir tudo para decimais, verá que está correto: 2 + 7 = 9.

Nenhum comentário:

Postar um comentário