Mostrando postagens com marcador binário. Mostrar todas as postagens
Mostrando postagens com marcador binário. Mostrar todas as postagens

sábado, 19 de setembro de 2009

Unidades de Medida do Computador

Toda informação introduzida em um computador precisa ser entendida pela máquina, para que possa corretamente interpretá-la e processá-la. O computador, sendo um equipamento eletrônico, armazena e movimenta as informações internamente sob forma eletrônica, em um valor de voltagem ou de corrente. Para uma maior simplicidade e confiabilidade na representação elétrica da informação, os valores de voltagem, ou de corrente, são gerados e manipulados pelos circuitos em apenas dois valores diferentes, 0 e 1.

Dessa forma, os computadores digitais são totalmente binários. Toda informação introduzida em um computador é convertida para a forma binária. Tornando inclusive mais simples o emprego da lógica booleana para o tratamento da informação.

Assim, a menor unidade de informação armazenável em um computador é o algarismo binário ou dígito binário, conhecido como bit (contração das palavras inglesas binary digit). O bit pode ter então somente dois valores, 0 e 1.

Mas para poder armazenar as informações da linguagem humana, o computador manipula os bits em grupos ordenados. Por definição, instituída pela IBM e atualmente utilizada por praticamente todos os fabricantes de computadores, um caractere da linguagem humana é armazenado em um grupo ordenado de oito bits. Com isso o byte, definido como um grupo ordenado de oito bits, é a menor unidade de armazenamento de informação útil em computadores para nossa linguagem.

Em Dezembro de 1998 a Comissão Eletrotécnica Internacional (IEC), líder em padronização mundial de eletrotecnologia, aprovou como um padrão internacional nomes e símbolos para os prefixos dos múltiplos binários usados no campo de processamento e transmissão de dados.

Prefixos binários são nomes ou sí­mbolos que precedem a unidade de medida, para indicar a sua multiplicação por potências de base dois, semelhante aos prefixos padronizados pelo Sistema Internacional de Unidades (SI), onde a multiplicação se dá por potências de base dez. Os nomes e símbolos dos prefixos binários e suas respectivas potências binárias são mostrados abaixo:

1 Kilobyte  (KB)                   = 2^10 Bytes = 1.024 Bytes
1 Megabyte (MB) = 1024 Kilobytes = 2^20 Bytes = 1.048.576 Bytes
1 Gigabyte (GB) = 1024 Megabytes = 2^30 Bytes = 1.073.741.824 Bytes
1 Terabyte (TB) = 1024 Gigabytes = 2^40 Bytes = 1.099.511.627.776 Bytes
1 Petabyte (PB) = 1024 Terabytes = 2^50 Bytes = 1.125.899.906.842.624 Bytes
1 Exabyte (EB) = 1024 Petabytes = 2^60 Bytes = 1.152.921.504.606.846.976 Bytes
1 Zettabyte (ZB) = 1024 Exabytes = 2^70 Bytes = 1.180.591.620.717.411.303.424 Bytes
1 Yottabyte (YB) = 1024 Zettabytes = 2^80 Bytes = 1.208.925.819.614.629.174.706.176 Bytes


Com o passar dos anos e com a acelerada evolução tecnológica dos computadores, torna-se mais comum entre nós o uso dos prefixos de potências maiores. O primeiro computador pessoal padrão IBM tinha apenas 640KB de memória RAM, hoje é comum computadores com 4 GB de RAM. Os primeiros discos rígidos para estes computadores tinham até 10 MB, hoje usamos discos rígidos de 500 GB. As primeiras mídias removíveis armazenavam 180 KB, hoje temos as mídias Blu-ray que armazenam até 93,2 GB.

Por enquanto estamos na era dos Terabytes e Petabytes, pois os maiores bancos de dados do planeta e os mais grandiosos cálculos matemáticos realizados em computadores manipulam quantidades de informações dentro destas faixas. Não se assuste se um dia começar a ver anúncios de câmeras digitais de 5 Exabytes!

sábado, 9 de maio de 2009

Números binários

Em um sistema de representação binário (base 2) os números decimais (base 10) são representados somente pelos algarismos 0 e 1. Como por exemplo o número decimal 91 no sistema binário fica 01011011. Sabe-se que uma das técnicas mais famosas para conversão de decimal para binário é a divisão repetidamente do número decimal por 2 até que se obtenha o quociente 1 , o conjunto dos algarismos iniciado pelo último quociente e voltando por todos os restos até o primeiro forma a representação do número binário, por exemplo o cálculo para conversão de 234:

234 : 2
0 117 : 2
1 58 : 2
0 29 : 2
1 14 : 2
0 7 : 2
1 3 : 2
1 1 <-

Então 234 no sistema binário fica 11101010.

Já para a conversão de binário para decimal utiliza-se a seguinte fórmula:

N = d x b^n-1 + d x b^n-2 + ... + d x b^1 + d x b^0

Sendo d cada algarismo do número, n o número total de algarismos tendo n-1 como a posição do algarismo e b indica a base do número.

Convertendo 01011011 para decimal usando a fórmula fica (pode-se ignorar o zero mais à esquerda):

N = 1 x 2^6 + 0 x 2^5 + 1 x 2^4 + 1 x 2^3 + 0 x 2^2 + 1 x 2^1 + 1 x 2^0
N = 1 x 64 + 0 x 32 + 1 x 16 + 1 x 8 + 0 x 4 + 1 x 2 + 1 x 1
N = 64 + 0 + 16 + 8 + 0 + 2 + 1
N = 91


Entretanto o sistema de representação binário tem uma lógica de evolução dos números que apenas visualmente é possível mentalizar o resultado da conversão, inclusive no sentido oposto, decimal para binário e binário para decimal. Vamos então primeiro para a evolução dos números. Tomando para a explanação o conjunto de números decimais de 0 a 255, em binário vai de 00000000 a 11111111, o início da seqüencia é:

  0   00000000
1 00000001
2 00000010
3 00000011
4 00000100
5 00000101
6 00000110
7 00000111
8 00001000
9 00001001
10 00001010
...


Pela seqüencia percebe-se que os algarismos 1 vão aparecendo na representação da direita para a esquerda. A posição do primeiro algarismo 1 à esquerda só é modificada para a próxima casa à esquerda quando todas as outras casas à direita tornam-se 1 e com este movimento todas as casas à direita retornam para o algarismo 0, iniciando novamente uma nova evolução para completar as casas da direita com 1 e assim mover mais uma vez o algarismo 1 da esquerda para mais uma casa à esquerda.

É aí que temos um fato interessante. Todos conhecem a famosa seqüencia das potências de 2 que é 1, 2, 4, 8, 16, 32, 64, 128 etc. Acontece que para cada um desses números decimais quando representados no sistema binário apenas um algarismo 1 é contido na representação. Por exemplo:

  1   00000001
2 00000010
4 00000100
8 00001000
16 00010000
32 00100000
64 01000000
128 10000000


Então dado um número representado no sistema binário, se observarmos o algarismo 1 mais à esquerda em uma determinada casa significa que o número decimal será pelo menos igual ou maior, caso tenha outro algarismo 1 à direita, a potência representada nesta determinada casa. Exemplo, em 00100110 o algarismo 1 mais à esquerda está na casa da potência 32, como tem outros algarismos 1 à direita este número é maior que 32, e obviamente menor que 64. Sendo assim onde tiver o algarismo 1 o valor de sua respectiva potência de 2 será acrescentado ao número decimal.

Agora ficou fácil. Para encontrar o número exato basta somar as potências de 2 onde o algarismo é 1. Deste modo 00100110 tem o algarismo 1 nas casas das potências 32, 4 e 2, que somando resulta 38.

Voltando à conversão de decimal para binário (base 10 para base 2) o procedimento também é simples e inverso. Dado um número decimal, inicialmente encontra-se a primeira potência de 2 com o valor menor. Partindo deste valor vai-se somando as próximas potências menores, ignorando as que façam o resultado da soma ultrapassar, até que o resultado seja igual ao número decimal. A representação no sistema binário será colocando o algarismo 1 nas casas onde foram usadas as potências para a soma. Exemplificando, o número decimal 91 utilizará a soma das potências 64, 16, 8, 2 e 1 para igualar o seu valor, assim sua conversão para o número binário será 01011011.

Referências:

GUNTZEL, J. L. & NASCIMENTO, F. A. Introdução aos Sistemas Digitais, 2001.
MONTEIRO, M. A. Introdução à Organização de Computadores, 4ª Edição, LTC, 2005.
PATTERSON, D. A. & HENNESSY, J. L. Organização e Projeto de Computadores: A Interface Hardware/Software, 3ª Edição, Ed. Campus, 2005.
STALLINGS, W. Arquitetura e Organização de Computadores, 5ª Edição, Prentice-Hall, 2002.
TANENBAUM, A. S. Organização Estruturada de Computadores, 4ª Edição, LTC, 1999.
WEBER, R. F. Fundamentos da Arquitetura de Computadores. 2ª Edição, UFRGS - Sagra-Luzzato, 2001.