Tudo o que fazemos e armazenamos em um computador e em seus periféricos, é processado internamente numa sequência de zeros e uns (bits). A base 2 (sistema binário) é o que a computação utiliza para representar números, caracteres, imagens e tudo mais. Nesse artigo veremos o conceito de bit e byte e como eles são usados para representar as informações.
Antes, entretanto, veremos bem brevemente os principais sistemas de numeração usados na computação.
Sistemas de numeração
Os sistemas de numeração mais relevantes para os sistemas digitais são:
- Binário (base 2)
- Hexadecimal (base 16)
- Octal (base 8)
Veremos um pouco sobre cada um deles, sem adentrar em assuntos filosóficos, históricos ou matematicamente técnicos em relação aos seus cálculos ou conversões, focando mais em suas definições. Esse entendimento é base pra compreender operações lógicas, unidades de medida como bits, bytes etc, bem como compreender os sistemas ASCII e Unicode de representação de caracteres.
Um sistema de numeração é um conjunto de princípios para classificar em grupos e subgrupos as unidades que formam os números. A base numérica é o centro de todo sistema de numeração posicional. A base de um sistema é a quantidade de algarismos disponíveis para sua representação. Por exemplo, na padaria quando pedimos uma dúzia de ovos (estamos lidando com a base 12) e quando lidamos com tempo em minutos e segundos (usamos a base 60). Não é novidade que o sistema mais utilizado por seres humanos é o decimal (base 10), então começaremos por ele.
Sistema decimal
Nesse sistema temos os algarismos indo-arábicos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
que usamos para contar unidades, dezenas, centenas etc, da direita para a esquerda.
Por exemplo, o algarismo 764
é uma abreviação da expressão:
(7*100) + (6*10) + 4 = (7*10^2) + (6*10^1) + (4*10^0) = 764
Sistema binário
O sistema binário usa a base 2. E que, portanto, utiliza apenas dois dígitos diferentes para representar seus algarismos: 0
e 1
. Esse é o sistema que a computação e a eletrônica digital utilizam. Não obstante, ele é a base da álgebra booleana e de suas operações lógicas.
Normalmente quando falamos em binário a gente pensa em dois estados: ligado ou desligado. Verdadeiro ou falso. Sim ou não.
Por exemplo, o decimal 26
convertido para binário é 11010
que é uma abreviação da expressão:
(1*2^4) + (1*2^3) + (0*2^2) + (1*2^1) + (0*2^0) = (1*16) + (1*8) + (0*4) + (1*2) + (0*1) = 26
Sistema octal
Esse sistema usa a base 8. Ele já foi mais usado na computação como uma alternativa mais compacta ao binário, hoje, o que vemos, é um maior uso do sistema hexadecimal como alternativa ao binário.
Por exemplo, o decimal 16
convertido para octal é 20
que é uma abreviação da expressão:
(2*8^1) + (0*8^0) = (2*8) + 0 = 16
Sistema hexadecimal
Esse sistema usa a base 16, ou seja, ele emprega 16 símbolos. Ele é talvez o sistema mais usado atualmente para representar binário de uma forma mais compacta. Não é incomum vermos utilização de hexadecimais em linguagens de programação.
Devido ao fato do sistema decimal dispor apenas de 10 algarismos, esse sistema inclui seis letras do alfabeto para completar a sua composição, ficando assim:
S = {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
Um dígito em hexadecimal pode representar um número binário de 4 dígitos, ou seja, para transformar um binário em hexadecimal, basta que separemos o binário em grupos de 4 bits (quatro zeros e uns), começando pela direita.
Por exemplo:
O decimal 65000
convertido para binário é 1111110111101000
, separando em grupos de 4 bits e convertendo primeiro para decimal e por fim para hexadecimal, temos:
1000 = 8 -> 8
1110 = 14 -> E
1101 = 13 -> D
1111 = 15 -> F
Portanto, o decimal 65000
para hexadecimal é FDE8
.
Da mesma forma, tendo um valor hexadecimal, podemos chegar na sua representação binária, fazendo o processo inverso ao que fizemos anteriormente.
Tabela de conversão
Decimal | Binário | Hexadecimal |
---|---|---|
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | A |
11 | 1011 | B |
12 | 1100 | C |
13 | 1101 | D |
14 | 1110 | E |
15 | 1111 | F |
Conceito de bit e byte
Um bit (binary digit), é a menor e mais elementar unidade que os computadores utilizam para trabalhar. Ele pode assumir apenas dois valores: 0 ou 1. Fisicamente, um bit pode ser representado de várias formas: via eletricidade (dois valores de voltagem aplicados num fio), via luz (em fibras ópticas), via ondas eletromagnéticas (redes sem fio), enfim, em tudo que seja possível identificar dois estados diferentes.
Exemplos de representações “binárias” do nosso mundo real:
- Uma porta: fechada ou aberta;
- Uma lâmpada: acesa ou apagada;
- Estado civil: solteiro ou casado;
Já o byte, é a menor unidade de armazenamento utilizada pelos computadores. Um byte é uma sequência de 8 bits. Ou seja, não é possível salvar menos do que 8 bits. Por exemplo, em uma tabela de banco de dados onde você tem uma coluna do tipo tinyint, quando salvamos o número 0 nela, estamos na prática usando 1 byte e não 1 bit. O próprio tipo tinyint já especifica que ele usa 1 byte de armazenamento, não importando se você vai salvar nele o número 1 ou o 255.
Todo dispositivo de armazenamento indica o número de bytes (8 bits) que ele pode conter. Algumas unidades de medida facilitam esse agrupamento:
Unidade | Símbolo | Número de bytes |
---|---|---|
kilobyte | kB | 2^10 = 1024 bytes |
megabyte | MB | 2^20 = 1,048,576 bytes |
gigabyte | GB | 2^30 = 1,073,741,824 bytes |
terabyte | TB | 2^40 = 1,099,511,627,776 bytes |
petabyte | PB | 2^50 = 1,125,899,906,842,624 bytes |
exabyte | EB | 2^60 = 1,152,921,504,606,846,976 bytes |
zettabyte | ZB | 2^70 = 1,180,591,620,717,411,303,424 bytes |
yottabyte | YB | 2^80 = 1,208,925,819,614,629,174,706,176 bytes |
Sendo que as unidades mais comuns do nosso dia a dia são as quatro primeiras.
Velocidade de transferência
Existe uma confusão bastante comum entre os consumidores de internet em relação a unidade de medida da velocidade de transferência. Quando você contrata aquela internet de fibra óptica de 100MB, que você lê que poderá baixar a “100 mega por segundo”, pode parecer que será possível baixar um arquivo de 100 megabytes em 1 segundo, mas isso não é verdade. Velocidade de transferência é medida em bits por segundo e não em bytes. Portanto, um download a 100mbps significa 100 megabits por segundo e não 100 megabytes.
Para se chegar no valor em megabytes, é preciso dividir por 8. Ou seja, quando você baixa a 100mbps, você está na prática baixando 100/8 = 12,5 megabytes por segundo.
Concluindo
E aqui finalizamos o artigo, que teve uma abordagem leve, pouco técnica e bem direto ao ponto. Mas essas são noções fundamentais da informática.
Recomendo que você assista o vídeo: Why Use Binary?
Até a próxima!