Bit, Byte, Kilo, Mega, Giga…

Se você chegou até aqui, certamente já teve que lidar com os termos bit, byte, kilo, mega, giga e por aí vai. Talvez você já tenha trabalhado com eles sem saber exatamente o que significam. Vamos resolver isso agora!

Bit e Byte

Para que a gente entenda o que é um bit, precisamos voltar um pouco no tempo.

A função mais básica de um computador sempre foi realizar cálculos, daí o seu nome significar aquele que computa”, que calcula.

Pense em um computador que precisa fazer um cálculo simples, como somar dois números (digamos, 6 + 5). Antes de somá-los, o computador deve armazená-los em sua memória.

Mas os computadores de antigamente eram mecânicos. Como fazer, então, para representar em um sistema mecânico os números decimais que usamos no nosso dia a dia?

Bom, representar apenas dois estados em um sistema mecânico já era comum à época. Esses dois estados são semelhantes a uma lâmpada, que pode estar acesa ou apagada.

Figura 1

Dois estados podem representar apenas dois valores.

Okay, queremos calcular 6 + 5, dois números. O 6 pode ser representado como o estado aceso, e o 5 como o estado apagado.

Figura 2

Mas, como o resultado (11) seria representado?

Boa pergunta!

É aqui que começamos a fazer combinações dos dois estados. O 11 poderia ser representado como aceso-apagado.

Figura 3

E para somar 11 + 6? Basta criar outra combinação dos dois estados para representar o resultado.

Figura 4

Enquanto 11 é representado como aceso-apagado, 17 é representado como apagado-aceso.

Trazendo essa lógica para os computadores mecânicos, era necessário usar apenas dois estados para representar qualquer valor, desde que esses estados fossem combinados quantas vezes necessárias.

Não importa como esses estados são chamados: aceso e apagado, ligado e desligado, aberto e fechado… O importante é que são estados completamente distintos um do outro.

As lâmpadas funcionam num sistema binário, ou seja, elas podem estar em dois estados distintos, mas não simultaneamente.

Os computadores mecânicos seguiram esse esquema de representação desde a sua criação até a sua extinção. E isso funcionou muito bem!

Quando os computadores digitais surgiram, evoluindo de uma estrutura mecânica para uma arquitetura eletrônica, o sistema de representação binário permaneceu o mesmo.

Dentro de uma CPU (Central Processing Unit) existem vários transistores que podem, cada um deles, representar dois estados. Quando um transistor recebe corrente elétrica, dizemos que ele está ligado. Quando não recebe, está desligado.

Transistores e sinais elétricos são elementos físicos de um computador digital (fazem parte do hardware). Logicamente (isto é, em software), o estado ligado de um transistor corresponde ao dígito 1, e o estado desligado corresponde ao dígito 0.

Ou seja, a nível de software, o transistor é chamado de bit. De fato, bit nada mais é do que uma abreviação de binary digit, ou dígito binário.

As palavras bit” e software” foram cunhadas na década de 1940 pelo estatístico John Tukey, quando ele trabalhava no desenvolvimento dos computadores da Bell Labs.

Agora, que tal refazermos nosso cálculo anterior usando o sistema binário dos computadores digitais? Vamos calcular 6 + 5 novamente.

Figura 5

Veja como podemos representar qualquer valor usando apenas dois algarismos (dois estados): 1 e 0 (ligado e desligado).

O bit, portanto, é a menor unidade de dados de um computador digital. A partir da combinação dos dois valores binários podemos representar qualquer coisa, desde números até símbolos e caracteres alfabéticos.

Um byte nada mais é do que um conjunto de 8 bits (byte é a abreviação de binary term, ou termo binário). Isso mesmo, simples assim! Quando temos 8 bits juntos, temos 1 byte.

Contando em binário

Aprendemos desde criança a contar em decimal. Usamos os algarismos de 0 a 9 para representar todos os valores.

Quando queremos representar um valor maior que 9, começamos a fazer combinações com os algarismos disponíveis. Combinamos 3 e 1 para formar o valor 31; combinamos 5, 2 e 5 para formar o valor 525.

Em binário, temos os algarismos 0 e 1 apenas. Quando precisamos representar um valor maior que 1, fazemos combinações com os dois algarismos disponíveis. Combinamos 1, 0 e 1 para formar o valor 101; combinamos 1, 1, 0, 0 e 1 para formar o valor 11001.

A correspondência entre um número binário e um número decimal depende da ordem da contagem.

Binário Decimal
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7

O valor 101 em binário é igual a 5 em decimal. Ambos os valores representam a quantidade ou a medida cinco”, mas cada um em seu sistema numérico: um em binário e o outro em decimal.

Se você precisar saber como o valor decimal 250 é representado em binário, fazer a contagem até chegar a esse valor talvez não seja a melhor ideia. É por isso que existem métodos de conversão entre esses dois sistemas numéricos. Mas isso é assunto para outro texto…

Kilo, Mega, Giga…

Podemos encontrar as seguintes grandezas de dados: Kilo, Mega, Giga, Tera, Peta, Exa, Zetta e Yotta.

Cada grandeza pode ser abreviada por sua primeira letra em maiúsculo (exceto Kilo, que deve ser abreviado com k minúsculo). Por exemplo, Mega pode ser abreviada como M.

Essas grandezas são escritas como prefixo para indicar a quantidade do elemento especificado no sufixo.

Figura 6

Por exemplo, Kilo é a grandeza de 1.000. Quando falamos de kilobits (ou kb), estamos nos referindo a uma quantidade de 1.000 bits. Kilo é o prefixo, e bits é o sufixo.

Se você continuar multiplicando por 1.000, chegará às demais grandezas.

Grandeza Valor
Kilo 1.000
Mega 1.000.000
Giga 1.000.000.000
Tera 1.000.000.000.000
Peta 1.000.000.000.000.000
Exa 1.000.000.000.000.000.000
Zetta 1.000.000.000.000.000.000.000
Yotta 1.000.000.000.000.000.000.000.000

A conta segue a lógica:

  • 1 Megabit (ou Mb) = 1 × 1.000.000 = 1.000.000 de bits.
  • 100 Megabits = 100 × 1.000.000 = 100.000.000 de bits.

Dependendo da situação, usamos o byte como elemento do sufixo. Por exemplo:

  • 1 Megabyte (ou MB) = 1 × 1.000.000 = 1.000.000 de bytes.
  • 100 Megabytes = 100 × 1.000.000 = 100.000.000 de bytes.

A ideia é a mesma, mas lembre-se de que byte é um conjunto de 8 bits. 1 Megabyte é oito vezes mais que 1 Megabit:

  • 1 Megabyte = 8 × 1 Megabit = 8.000.000 de bits.
  • 100 Megabytes = 8 × 100 Megabits = 800.000.000 de bits.

Com isso, podemos falar sobre as famosas taxas de transferência e da confusão em torno do armazenamento de dados.

Taxas de transferência

As taxas de transferência são representadas como bits por segundo (ou bps).

Temos, então, taxas como 100 Megabits por segundo (ou 100 Mbps), que é igual a 100 × 1.000.000 = 100.000.000 de bits por segundo. Uma interface Fast Ethernet trabalha nessa velocidade. Isso significa que ela será capaz de transferir, a cada segundo, uma quantidade total de 100.000.000 de bits de dados.

Podemos encontrar também os bytes por segundo (B/s), como nos downloads que fazemos da Internet. Por exemplo, 100 Megabytes por segundo (ou 100 MB/s) é igual a 100 × 1.000.000 = 100.000.000 de bytes por segundo. Isso representa 800.000.000 de bps.

A confusão com o armazenamento de dados

O armazenamento de dados numa RAM (Random Access Memory), por exemplo, é representado nas grandezas Kibi, Mebi, Gibi, Tebi, Pebi, Exbi, Zebi e Yobi.

O detalhe é que essas grandezas são de base binária. Por exemplo, enquanto Kilo é 103 (1.000), Kibi é 210 (1.024).

Você certamente já viu algo como um SSD (Solid State Drive) sendo anunciado com os seus 500 Gigabytes”. Daí você pensa, obviamente, que pode armazenar 500 Gigabytes de dados, ou 500.000.000.000 de bytes, ou 4.000.000.000.000 de bits.

E você tem razão.

Porém, o tamanho real do SSD é um pouco maior.

Embora o anúncio seja feito em Gigabyte, o SSD é construído na grandeza de Gibibyte (GiB).

Capacidade Bytes Bits
500 Gigabytes 500.000.000.000 4.000.000.000.000
500 Gibibytes 536.870.912.000 4.294.967.296.000

Veja que 500 Gibibytes é 36.870.912.000 bytes a mais que 500 Gigabytes. Isso dá uma diferença de 7,37%.

Porém, mesmo assim, você ainda continua podendo armazenar somente 500 Gigabytes de dados. Os 7,37% a mais disponíveis no SSD são usados para operações do disco que visam a melhoria de desempenho.

Ou seja, o anúncio não é tão enganador assim…

Um HD (Hard Disk) não funciona da mesma forma que um SSD. Um HD de 500 Gigabytes possui realmente um tamanho de 500 Gigabytes, nem mais, nem menos.

Mas o Windows não pensa assim…

Quando você conecta um HD numa máquina com Windows como sistema operacional, o HD vai ser exibido com um tamanho menor do que ele realmente possui. Veja o exemplo de um HD externo que conectei em meu notebook Windows:

Figura 7

Meu HD externo é de 1 Terabyte. Porém, o Windows faz a conversão dessa medida para o padrão usado nos armazenamentos, como SSD e RAM.

Para acessar o sistema de gerenciamento de discos do Windows, clique Win+R e digite diskmgmt.msc.

1 Terabyte (TB) é igual a aproximadamente 931 Gibibytes (GiB), e é este valor que o Windows exibe (embora ele use a abreviação GB ao invés de GiB). Existe uma longa discussão em fóruns na Internet sobre essa inconsistência de grandezas, mas mudar isso significa mexer em todo o sistema de input/output do Windows, e esse trabalho não se faz de uma hora para a outra.

Conclusão

Um bit é a menor unidade de informação digital, podendo ser igual a 0 ou 1. A combinação de vários bits resulta na representação de qualquer valor.

Os números, símbolos e caracteres alfabéticos são representados digitalmente por sequências de bits combinados.

Um byte é um conjunto de 8 bits.

As transferências de dados e o armazenamento em HD usam as grandezas Kilo, Mega, Giga etc. para representar quantidades maiores de bits e bytes (por exemplo, 100 Mbps ou 500 MB de armazenamento).

Grandeza Valor
Kilo (k) 103 = 1.000
Mega (M) 106 = 1.000.000
Giga (G) 109 = 1.000.000.000
Tera (T) 1012 = 1.000.000.000.000
Peta (P) 1015 = 1.000.000.000.000.000
Exa (E) 1018 = 1.000.000.000.000.000.000
Zetta (Z) 1021 = 1.000.000.000.000.000.000.000
Yotta (Y) 1024 = 1.000.000.000.000.000.000.000.000

Memórias como SSD, RAM e USB Flash usam as grandezas Kibi, Mebi, Gibi etc. para representar quantidades maiores de bits e bytes (por exemplo, 1 TiB de armazenamento).

Grandeza Valor
Kibi (ki) 210 = 1.024
Mebi (Mi) 220 = 1.048.576
Gibi (Gi) 230 = 1.073.741.824
Tebi (Ti) 240 = 1.099.511.627.776
Pebi (Pi) 250 = 1.125.899.906.842.624
Exbi (Ei) 260 = 1.152.921.504.606.846.976
Zebi (Zi) 270 = 1.180.591.620.717.411.303.424
Yobi (Yi) 280 = 1.208.925.819.614.629.174.706.176

Espero que este texto tenha lhe ajudado a entender um pouco o que são bits, bytes e suas grandezas.

Se você tiver qualquer crítica ou sugestão, me envie uma mensagem via carlos@wolkartt.com.

Fique à vontade para compartilhar este artigo. Peço apenas que você referencie o autor e este blog como fonte.

Continue Lendo...