sexta-feira, julho 23, 2010

Bits e bytes




Os computadores "entendem" impulsos elétricos, positivos ou negativos, que são representados por 1 ou 0, respectivamente. A cada impulso elétrico, damos o nome de bit (BInary digiT). Um conjunto de 8 bits reunidos como uma única unidade forma um byte.
Nos computadores, representar 256 números binários é suficiente para que possamos lidar a contento com eles. Por isso, os bytes possuem 8 bits. É só fazer os cálculos: como um bit representa dois tipos de valores (1 ou 0) e um byte representa 8 bits, basta fazer 2 (do bit) elevado a 8 (do byte) que é igual a 256.

Os bytes representam todas as letras (maiúsculas e minúsculas), sinais de pontuação, acentos, caracteres especiais e até informações que não podemos ver, mas que servem para comandar o computador e que podem inclusive ser enviados pelo teclado ou por outro dispositivo de entrada de dados e instruções.

Para que isso aconteça, os computadores utilizam uma tabela que combina números binários com símbolos: a tabela ASCII (American Standard Code for Information Interchange). Nesta tabela, cada byte representa um caractere ou um sinal.
A partir daí, foram criados vários termos para facilitar a compreensão humana da capacidade de armazenamento, processamento e manipulação de dados nos computadores. No que se refere aos bits e bytes, tem-se as seguintes medidas:

1 Byte = 8 bits
1 kilobyte (KB ou Kbytes) = 1024 bytes
1 megabyte (MB ou Mbytes) = 1024 kilobytes
1 gigabyte (GB ou Gbytes) = 1024 megabytes
1 terabyte (TB ou Tbytes) = 1024 gigabytes
1 petabyte (PB ou Pbytes) = 1024 terabytes
1 exabyte (EB ou Ebytes) = 1024 petabytes
1 zettabyte (ou Zbytes) = 1024 exabytes
1 yottabyte (ou Ybytes) = 1024 zettabytes

É também através dos bytes que se determina o comprimento da palavra de um computador, ou seja, a quantidade de bits que ele utiliza na composição das instruções internas, como por exemplo:

8 bits => palavra de 1 byte
16 bits => palavra de 2 bytes
32 bits => palavra de 4 bytes

Na transmissão de dados entre computadores, geralmente usa-se medições relacionadas a bits e não a bytes. Assim, há também os seguintes termos:

1 kilobit (Kb ou Kbit) = 1024 bits
1 megabit (Mb ou Mbit) = 1024 Kilobits
1 gigabit (Gb ou Gbit) = 1024 Megabits
1 terabit (Ou Tbit) = 1024 Megabits

E assim por diante. Você já deve ter percebido que, quando a medição é baseada em bytes, a letra 'b' da sigla é maiúscula (como em GB). Quando a medição é feita em bits, o 'b' da sigla fica em minúsculo (como em Gb).

Como já dito, a utilização de medições em bits é comum para indicar o volume de dados em transmissões. Geralmente, indica-se a quantidade de bits transmitidos por segundo. Assim, quando queremos dizer que um determinado dispositivo é capaz de enviar, por exemplo, 54 megabits por segundo, usa-se a expressão 54 Mbps (54 Megabits per second - 54 megabits por segundo):

1 Kbps = 1 kilobit por segundo
1 Mbps = 1 megabit por segundo
1 Gbps = 1 gigabit por segundo
E assim por diante.
Kibibit, kibibyte e afins

Se você adquirir, por exemplo, um HD de 500 GB, vai perceber que o sistema operacional do computador mostrará uma capacidade menor que essa em relação ao dispositivo. Isso porque os sistemas operacionais, de modo geral, consideram 1 kilobyte como sendo equivalente a 1024 bytes, e assim se segue com megabytes, gigabytes, terabytes e etc, tal como explicado anteriormente. No entanto, para os fabricantes de discos rígidos, 1 kilobyte corresponde a 1000 bytes, e assim por diante. Afinal, o que é correto, 1000 bytes ou 1024 bytes? Há organizações que defendem tanto um quanto o outro.
Uma possível solução para esse impasse estaria nas terminologias e abreviações que a International Electrotechnical Commission (IEC) criou para indicar as medições baseadas em 1024 bytes, que são as seguintes:

1 kibibyte (ou KiB) = 1024 bytes
1 mebibyte (ou MiB) = 1024 kibibytes
1 gibibyte (ou GiB) = 1024 mebibytes
1 tebibyte (ou TiB) = 1024 gibibytes
1 pebibyte (ou PiB) = 1024 tebibytes
1 exbibyte (ou EiB) = 1024 pebibytes
1 zebibyte (ou ZiB) = 1024 exbibytes
1 yobibyte (ou YiB) = 1024 zebibytes

Os mesmo prefixos dos nomes acima são empregados também nas medições baseadas em bits: kibibit, mebibit, gibibit, tebibit e assim por diante.

O sistema de medidas elaborado pela IEC é tido como o correto, deixando os prefixos quilo, mega, giga, tera, peta, exa, zetta e yotta (que são oriundos do Sistema Internacional de Unidades) representando 1000 bytes e seus múltiplos (isto é, potências de 10). Assim, as denominações da IEC equivalem às representações de 1024 bytes e seus múltiplos (potências de 2). Em resumo, essas medições ficam assim:

1 Kilobyte = 1000 bytes
1 kibibyte = 1024 bytes
1 Megabyte = 1000 kilobytes
1 mebibyte = 1024 kibibytes
1 Gigabyte = 1000 megabytes
1 gibibyte = 1024 mebibytes
1 Terabyte = 1000 gigabytes
1 tebibyte = 1024 gibibytes
1 Petabyte = 1000 terabytes
1 pebibyte = 1024 tebibytes
1 Exabyte = 1000 petabytes
1 exbibyte = 1024 pebibytes
1 Zettabyte = 1000 exabytes
1 zebibyte = 1024 exbibytes
1 Yottabyte = 1000 zettabytes
1 yobibyte = 1024 zebibytes