No final dos anos 1930, Claude Shannon mostrou que com o uso de interruptores (switches) fechados, para verdadeiro, e abertos, para falso, é possível efetuar operações lógicas associando o número 1 para 'verdadeiro' e 0 para 'falso'. Esta codificação da informação é chamada de base binária e é com ela que funcionam os computadores. Ela consiste em utilizar dois status (representados pelos números 0 e 1) para codificar as informações.
Desde os anos 2000 AC, o homem tem calculado com 10 dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), o que chamamos de sistema decimal (ou base 10). No entanto, civilizações antigas e certas aplicações atuais utilizam outras bases de cálculo, como a base hexadecimal (base 60), criada pelos sumérios e que hoje se usa no sistema de horas, minutos e segundos atual. Também há a base vigesimal (20), utilizada pelos maias, a base duodecimal (12), utilizada pelos anglo-saxões nos seus sistemas monetários até 1960 e que perdura em parte no sistema de horas de alguns países; a base quinária (5), também dos maias; e a base binária (2), utilizada pelo conjunto das tecnologias digitais.
O termo bit (com ‘b’ minúsculo) significa binary digit, ou seja, 0 ou 1 em codificação binária. Trata-se da menor unidade de informação manipulável por uma máquina digital. É possível representar fisicamente esta informação binária por um sinal elétrico ou magnético, que, além de certo patamar, corresponde ao valor 1, por asperezas geométricas em uma superfície e graças aos bits estáveis, ou seja, componentes eletrônicos que têm dois estados estáveis (um corresponde ao estado 1 e o outro ao 0).
Com um bit, também é possível obter dois estados: seja 1, seja 0. Graças a 2 bits, é possível obter quatro estados diferentes (2*2=4):
0 | 0 |
0 | 1 |
1 | 0 |
1 | 1 |
Com 3 bits, é possível obter oito estados diferentes (2*2*2=8):
Valor binário em 3 bits | Valor decimal |
---|---|
000 | 0 |
001 | 1 |
010 | 2 |
011 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
Para um grupo de n bits, é possível representar 2^n valores.
Em um número binário, o valor de um bit é chamado de peso e depende da posição do bit, partindo da direita. Como nas dezenas, centenas e milhares, para um número decimal, o peso de um bit cresce de uma potência de dois indo da direita para a esquerda, como mostra a seguinte tabela:
Número binário | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
---|---|---|---|---|---|---|---|---|
Peso | 2^7 = 128 | 2^6 = 64 | 2^5 = 32 | 2^4 = 16 | 2^3 = 8 | 2^2 = 4 | 2^1 = 2 | 2^0 = 1 |
Para converter uma palavra binária em número decimal, basta multiplicar o valor de cada bit pelo seu peso e adicionar cada resultado. Assim, a palavra binária 0101 vale, em decimal:
2^3x0 + 2^2x1 + 2^1x0 + 2^0x1
= 8x0 + 4x1 + 2x0 + 1x1
= 5
O Byte (‘B’ em letra maiúscula) é uma unidade de informação composta de 8 bits. Ele pode armazenar um caractere, como uma letra ou um número. Esta agrupamento de números por série de 8 confere mais legibilidade, assim como gostamos, na base decimal, de reunir números por grupo de três, para distinguir os milhares. O número ‘1 256 245’, por exemplo, é mais fácil de ler do que 1256245. Em geral, uma unidade de informação composta de 16 bits é chamada de Palavra (Word). Uma unidade de informação de 32 bits de comprimento é chamada de Palavra dupla (Double word, daí o nome dword). Para um byte, o menor número é 0 (representado por oito zeros 00000000) e o maior é 255 (representado por oito algarismos "um", 11111111), o que representa 256 possibilidades de valores diferentes.
2^7 =128 | 2^6 =64 | 2^5 =32 | 2^4 =16 | 2^3 =8 | 2^2 =4 | 2^1 =2 | 2^0 =1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Durante muito tempo, a informática se destacou pelo uso de diferentes valores para as unidades do sistema internacional. Assim, muitos cientistas em computação aprenderam que 1 kilobyte valia 1 024 bytes. No entanto, desde dezembro de 1998, o IEC (International Electrotechnical Commission - Comissão Eletrotécnica Internacional) se pronunciou sobre o assunto. Leia os prefixos para binários múltiplos.
Veja as unidades padrão:
Um kilobyte (kB) = 1 000 bytes
Um MegaByte (MB) = 1000 kB = 1 000 000 bytes
Um Gigabyte (GB) = 1000 MB = 1 000 000 000 bytes
Um Terabyte (TB) = 1000 GB = 1 000 000 000 000 bytes
Muitos softwares (às vezes, até certos sistemas operacionais) ainda utilizam a notação anterior a 1998, na qual:
Um kilobyte (kB) = 2^10 bytes = 1 024 bytes
Um MegaByte (MB) = 2^20 bytes = 1024 kB = 1 048 576 bytes
Um Gigabyte (GB) = 2^30 bytes = 1024 MB = 1 073 741 824 bytes
Um Terabyte (TB) = 2^40 bytes = 1024 GB = 1 099 511 627 776 bytes
O IEC também definiu o quilo binário (kibi), o mega binário (MEBI), O giga binário (Gibi), O tera binário (Tebi). Veja suas definições:
Um kibibyte (kiB) = 2^10 = 1 024 bytes
Um Mébibyte (MiB) = 2^20 = 1 048 576 bytes
Um Gibibyte (GiB) = 2^30 = 1 073 741 824 bytes
Um Tébibyte (TiB) = 2^40 = 1 099 511 627 776 bytes
É importante ressaltar que a comunidade internacional, como um todo, utiliza, de preferência, os termos abreviados para fazer referência a esses valores. Isto resulta nas seguintes notações para kilobyte, megabyte, gigabyte e terabyte:
kB, MB, GB, TB
Use um B maiúsculo para diferenciar Byte de bit.
Veja como aparece no navegador Internet Explorer:
As operações aritméticas simples como a adição, a subtração e a multiplicação são fáceis de serem feitas em binário.
A adição em binário é feita segundo as mesmas regras em decimal: começamos a adicionar os bits de baixo peso (os bits da direita), depois retemos quando a soma de dois bits com o mesmo peso ultrapassa o valor da maior unidade (no caso do binário: 1), esta retenção é transferida para o próximo bit mais pesado. Por exemplo:
0 | 1 | 1 | 0 | 1 | |
+ | 0 | 1 | 1 | 1 | 0 |
- | - | - | - | - | - |
1 | 1 | 0 | 1 | 1 |
A tabuada de multiplicação em binário é bem simples:
0x0=0
0x1=0
1x0=0
1x1=1
A multiplicação é feita através da formação de um produto parcial para cada dígito do multiplicador (apenas os bits diferentes de zero darão um resultado diferente de zero). Quando o bit do multiplicador é nulo, o produto parcial é igual a zero, quando ele vale 1, o produto parcial se constitui do multiplicando deslocado do número de posições igual ao peso do bit do multiplicador. Por exemplo:
0 | 1 | 0 | 1 multiplicando | ||
x | 0 | 0 | 1 | 0 multiplicador | |
- | - | - | - | - | - |
0 | 0 | 0 | 0 | ||
0 | 1 | 0 | 1 | ||
0 | 0 | 0 | 0 | ||
- | - | - | - | - | - |
0 | 1 | 0 | 1 | 0 |