Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Bits, bytes e mais um pouco

“Hoje vamos sair da matrix e saber o que está por trás deste mundo que acreditamos ser real e que nos oculta a verdade…”

Ok… ok…, é só um tutorial sobre sistemas de numeração e conversões, só quis deixar um pouco mais empolgante

Certo, chega de perder tempo, largue este livro e acompanhe o artigo.

Sistema numérico posicional

Em um sistema numérico posicional o valor do algarismo ou numeral varia conforme sua posição no conjunto de algarismos que representam o número.

O sistema decimal é posicional. Veja o no número 23.514, o algarismo dois vale vinte mil unidades enquanto que o algarismo 5 vale quinhentas unidades.

Para saber o valor só precisamos multiplicar pela base elevada à posição ocupada pelo número contando da direita para a esquerda a partir de zero.

4 x 10 elevado a 0 = 4 x 1 = 4

1 x 10 elevado a 1 = 1 x 10 = 10

5 x 10 elevado a 2 = 5 x 100 = 500

3 x 10 elevado a 3 = 3 x 1000= 3000

2 x 10 elevado a 4 = 2 x 10000 = 20000

4 + 10 + 500 + 3000 + 20000 = 23.514. Voilà!

Assim um sistema de base X precisa de X algarismos para representar os números, veja:

Base binária: algarismos de 0 a 1

Base decimal: algarismos de 0 a 9

Base octal: algarismos de 0 a 7

Base hexadecimal: de 0 a 9 e mais os símbolos A, B, C, D, E, F. Neste caso, como nossos dígitos indo-arábicos vão apenas de 0 a 9 utilizamos letras para representar os demais valores.

Para representar a base são utilizadas algumas convenções como um índice numérico ou texto indicando a base 15916 ou 159hex, 159decimal ou 15910

Mas, e os bits e bytes?

Como qualquer valor numérico pode ser expresso em qualquer sistema numérico posicional, o sistema binário ou de base 2 não fica de fora.

Um bit ou binary digit (dígito binário) como você já deve saber é a menor unidade de informação que pode ser armazenada em um computador e também um algarismo do sistema numérico posicional de base 2, pois só pode assumir 2 valores: 0 ou 1.

Obviamente dentro de um computador não existe os algarismos ‘0’ e ‘1’, porém toda a eletrônica digital e computação estão baseadas no sistema binário, porque os componentes dos sistemas eletrônicos sempre assumem um dentre dois estados: interruptores (fechados ou abertos), capacitores (carregados ou descarregados), circuitos (presença ou ausência de energia). Esses dois estados, são usados para representar a numeração de forma abstrata.

Um processador por exemplo é um circuito integrado complexo, capaz de lidar com bilhões de instruções por segundo, mas internamente é projetado com vários transistores que controlam o fluxo de corrente elétrica por meio de portas lógicas. As portas lógicas trabalham com operações booleanas, e essas operações manipulam valores do tipo verdadeiro-1 ou falso-0.

Partindo para os múltiplos do bit temos o byte, que é formado por oito bits ou oito algarismos “11111111” (255 em decimal) na notação binária, e os demais mais comuns, quilobyte (KB), megabyte (MB), gigabyte (GB) e terabyte (TB).

A informática acabou por incorporar valores e expressões que já existiam, isto é, os prefixos quilo, mega, giga, entre outros, foram criados para exprimir potências inteiras da base no sistema numérico de base dez, mas isso não acontece no sistema binário, algo que dificulta um pouco os cálculos, um mega (10³ ou 1000), por exemplo, em binário é 1111101000, portanto convencionou-se utilizar uma potência inteira de 2 mais próxima deste valor como 1024 ou 10000000000.

Na tabela abaixo você pode conferir a nomenclatura e as quantidades neste sistema de numeração:

Bit = um dígito binário 1 ou 0

1 Nibble = 4 bits

1 Byte = 8 bits

1 Kilobyte (kB) = 1024 Bytes

1 Megabyte (MB) = 1024 Kilobytes

1 Gigabyte (GB) = 1024 Megabytes

1 Terabyte (TB) = 1024 Gigabytes

1 Petabyte (PB) = 1024 Terabytes

1 Exabyte (EB) = 1024 Petabytes

1 Zettabyte = 1024 Exabytes

1 Yottabyte = 1024 Zettabytes. É byte que não acaba mais!

Hexadecimal

Os números hexadecimais servem para representar números binários de uma forma mais compacta, afinal é muito mais fácil trabalhar com um número como 1F4 do que 0001 1111 0100, isto é, na notação hexadecimal só precisamos de um único símbolo para representar um padrão de quatro bits. Prático né?

Conversões

Apesar da calculadora do seu sistema operacional já fazer isso por você, é interessante saber como converter de uma base para outra e existem diferentes métodos de se fazer isso. Para o artigo não ficar muito extenso vou mostrar apenas alguns.

A tabela abaixo pode ser útil para daqui para frente:

Decimal Binário Hexadecimal Octal
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 8 10
9 1001 9 11
10 1010 A 12
11 1011 B 13
12 1100 C 14
13 1101 D 15
14 1110 E 16
15 1111 F 17

Decimal em Binário

Usando 336 como exemplo:

  1. Crie uma tabela com as potências de dois no cabeçalho. As potências devem ir até o valor mais próximo do número que desejamos converter.
256 128 64 32 16 8 4 2 1

Agora a regra é somar as potências até obtermos o número decimal sem ultrapassá-lo, se isso acontecer colocamos 0 abaixo da potência na tabela e passamos para a próxima, caso contrário colocamos 1, então vamos lá:

  • 256, é menor que 336 então coloque 1 na coluna 256.
  • 256 + 128 = 384, é maior que 336 então coloque 0 na coluna 256.
  • 256 + 64 = 320, é menor que 336 então coloque 1 na coluna 64.
  • 320 + 32 = 352, é maior que 336 então coloque 0 na coluna 32.
  • 320 + 16 = 336, é o valor que procuramos então coloque 1 na coluna 16 e para o restante coloque 0.
  1. Ao final temos:
256 128 64 32 16 8 4 2 1
1 0 1 0 1 0 0 0 0

336 em decimal é 101010000 em binário.

Binário em Decimal

Agora faremos o inverso, converter 101010000 de volta para decimal. A ideia é praticamente a mesma:

  1. Crie uma tabela com os dígitos binários como cabeçalho, e as potências de dois em ordem crescente da direita para a esquerda
1 0 1 0 1 0 0 0 0
256 128 64 32 16 8 4 2 1
  1. Agora é só somar os valores das colunas que tiverem o valor 1 no cabeçalho: 256 + 64 + 16 = 336

É ou não é de uma simplicidade franciscana?

Decimal em Hexadecimal

Usando 2.189 como exemplo:

  1. Divida o número pela base e em seguida faça o mesmo com os quocientes sucessivamente, desconsiderando a parte decimal até que o último quociente seja zero
  • 2189 / 16 = 136, resto 13
  • 136 / 16 = 8, resto 8
  • 8 / 16 = 0, resto 8
  1. O número hexadecimal será a sequência do último resto até o primeiro, ou seja, 8813, onde podemos substituir 13 por D, ficando 88D o número que procuramos.

Binário em Hexadecimal e vice-versa

Usando 111010001101011101 como exemplo:

Você deve estar pensando: “Nossa! Vou levar horas para converter este número bizarro”. Se acalme, é bem simples também.

  1. Divida o número em subcadeias de tamanho quatro da direita para a esquerda e se faltarem dígitos acrescente zeros
  2. Abaixo de cada grupo coloque seu valor correspondente em hexadecimal
0011 1010 0011 0101 1101
3 A 3 5 D

Aí está o valor em hexadecimal que procuramos 3A35D

Binário em Octal

111010001101011101 como exemplo.

É a mesma ideia do exemplo anterior só que desta vez separando em subcadeias de três dígitos:

  1. Divida o número em subcadeias de tamanho três da direita para a esquerda e se faltarem dígitos acrescente zeros
  2. Abaixo de cada grupo coloque seu valor correspondente em octal
111 010 001 101 011 101
7 2 1 5 3 5

E este é o valor em octal que procuramos 721535

Bom, por hoje é só pessoal, em outros tutoriais veremos mais alguns assuntos como operações e lógica aritmética.

O post Bits, bytes e mais um pouco apareceu primeiro em CompAPL.



This post first appeared on CompAPL, please read the originial post: here

Share the post

Bits, bytes e mais um pouco

×

Subscribe to Compapl

Get updates delivered right to your inbox!

Thank you for your subscription

×