Fale com a gente no WhatsApp Fale com a gente no WhatsApp
Fale com a gente no WhatsApp

Desenvolvimento

Bits, bytes e unidades de medida

Tudo o que fazemos em um computador é processado numa sequência de zeros e uns (sistema binário). Veja mais sobre bits, bytes e unidades de medida.

há 4 anos 5 meses


Você sabia que a TreinaWeb é a mais completa escola para desenvolvedores do mercado?

O que você encontrará aqui na TreinaWeb?

Conheça os nossos cursos

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

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!

Autor(a) do artigo

Kennedy Tedesco
Kennedy Tedesco

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

Todos os artigos

Artigos relacionados Ver todos