Bits, bytes e unidades de medida

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 decimal

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

DecimalBinárioHexadecimal
000000
100011
200102
300113
401004
501015
601106
701117
810008
910019
101010A
111011B
121100C
131101D
141110E
151111F

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:

UnidadeSímboloNúmero de bytes
kilobyteKB2^10 = 1024 bytes
megabyteMB2^20 = 1,048,576 bytes
gigabyteGB2^30 = 1,073,741,824 bytes
terabyteTB2^40 = 1,099,511,627,776 bytes
petabytePB2^50 = 1,125,899,906,842,624 bytes
exabyteEB2^60 = 1,152,921,504,606,846,976 bytes
zettabyteZB2^70 = 1,180,591,620,717,411,303,424 bytes
yottabyteYB2^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!

Deixe seu comentário

Head de desenvolvimento. Vasta experiência em desenvolvimento Web com foco em PHP. Graduado em Sistemas de Informação. Pós-graduando em Arquitetura de Software Distribuído pela PUC Minas. Zend Certified Engineer (ZCE) e Coffee Addicted Person (CAP). @KennedyTedesco

© 2004 - 2019 TreinaWeb Tecnologia LTDA - CNPJ: 06.156.637/0001-58 Av. Paulista, 1765, Conj 71 e 72 - Bela Vista - São Paulo - SP - 01311-200