Fundamentos da Informática – Bases Decimal, Binaria, Octal, Hexadecimal.

Nesta série de artigos pretendo falar sobre os fundamentos básicos da informática, e não estou falando de “CPU”, “Placas”, etc.

O que pretendo  nestes artigos é mostrar como o processamento da informação ocorre, mostrando operações binárias básicas, mostrando como os computadores somam e subtraem, como eles sabem quando um número é negativo ou positivo, como a memória funciona, e por ai vai.

Mas antes de eu falar em qualquer coisa relacionada com “Algebra booleana”, vamos entender bases numéricas:

Quando se está na escola, aprende-se que 2+2 são 4, 3+5 é 8, 2-1 = 1, etc. A soma e subtração são as operações mais básicas possíveis na matemática comum. A partir delas obtemos a multiplicação (3×4 = 3+3+3+3 = 12), divisão (12 dividido por 3 = quantas vezes eu subtraio 3 de 12)…

Computadores também somam e subtraem, multiplicam e dividem, mas, estas operações não são “básicas” para eles.

Primeiro, vamos analisar o mundo através dos “olhos” de um computador:

Para nós, humanos, os números vão de 0 a 9, e podemos combinar eles para fazer números maiores: 10, 122, 1444…..

Antes de continuar, preciso que o leitor entenda a seguinte simbologia – quem conhece programação ja deve estar acostumado com isto, quem não conhece, bom… hora de conhecer…

  • Sinal de + é a soma….
  • Sinal de – é subtração…
  • Sinal de * (asterisco) é multiplicação: 3*4 = 3 vezes 4 = 12
  • Sinal de / é divisão: 12/3 = 12 divido por 3 = 4
  • Sinal de  ^ é expoente: X^2 = X ao quadrado (X²). X^(2+x) é o mesmo que
  • A palavra MOD é o resto da divisão: 13 MOD 3 = 1 (pois 13/3 = 4 e resta 1)

Então, conhecendo esta simbologia, podemos continuar.

Podemos representar qualquer numero na base decimal (a que a gente usa, com numeros de 0 a 9) com a seguinte equação:

A(n+1)*X^(n+1)+An*X^n

Aonde n é a posição do numero (unidade = 0, dezena = 1, centena = 2…), e A o algorismo correspondente a posição do numero (valor de 0 a 9). e X é sempre 10 (ja que estamos trabalhando com base 10).

O numero 6 pode ser representado assim:

A0*X^0

=6*X^0

=6*10^0 (qualquer numero elevado a 0 é 1, então 10^0 = 1)

= 6*1

= 6

O numero 9542 pode ser representado assim

A3*X^3 + A2*X^2 + A1*X^1 + A0*X^0

= 9*X^3 + 5*X^2 + 4*X^1 + 2*X^0.

X é 10 (como eu havia dito antes), então:

= 9*10^3 + 5*10^2 + 4*10^1 +2*10^0

= 9*1000 + 5* 100 + 4*10 +2*1

= 9000+500+40+2

= 9542

Como demonstrei, é possível decompor um numero decimal. Porque isto é importante? Simples: Esta formula que mostrei é “genérica” e serve para converter números de qualquer base para decimal. Nós humanos que calculamos com base 10 decompomos desta forma.

Mas, computadores, não possuem o luxo de trabalhar com dígitos de 0 a 9 em seus circuitos. Seus circuitos só conseguem entender 2 números: 1 e 0. Assim como uma lampada tem 2 estados: Acesa ou Apagada, um computador só conhece 2 estados: Ligado ou Desligado. Ligado é representado pelo digito 1, desligado pelo digito 0. Esta informação de 0 ou 1 denominamos de BITs.

Assim como nós, humanos, agrupamos números para representar números maiores (10, 30, 433…), computadores também podem agrupar seus “números” para representar números maiores, como, por exemplo, o seguintes números binários: 1, 10, 111, 1010, 10101…

A formula que usei para decompor números decimais pode ser aplicada em números binários para converter-los para decimal:

por exemplo:

A(n+1)*X^(n+1)+An*X^n

Aonde n é a posição do bit (sendo 0 o bit mais a direita) e A o algorismo correspondente a posição do numero (valor de 0 a 1). e X é sempre 2 (ja que estamos trabalhando com base 2).

O numero binário 1 pode ser convertido para decimal da seguinte forma:

A0*X^0.

=1*X^0

X = 2 (pois a base é 2)

=1*2^0

=1*1

=1

… o exemplo foi bobinho e deu na mesma… vamos tentar com outro numero:

Convertento o numero binário 10 para decimal:

A1*X^1 + A0*X^0

=1*X^1 + 0*X^0

X = 2 (pois a base é 2)

=1*2^1 + 0*2^0

= 1*2 + 0*1

= 2+0

=2

Para converter o numero 10101101 o processo é o mesmo:

A7*X^7 + A6*X^6 + A5*X^5 + A4*X^4 + A3*X^3 + A2*X^2 + A1*X^1 + A0*X^0

= 1*X^7 + 0*X^6 + 1*X^5 + 0*X^4 + 1*X^3 + 1*X^2 + 0*X^1 + 1*X^0

Todo numero multiplicado por 0 é 0. então:

= 1*X^7 + 0 + 1*X^5 +0+ 1*X^3 + 1*X^2 + 0 + 1*X^0

= 1*X^7 + 1*X^5 + 1*X^3 + 1*X^2 + 1*X^0

X = 2 (pois a base é 2)

= 1*2^7 + 1*2^5 + 1*2^3 + 1*2^2 + 1*2^0

= 1*128 + 1*32 + 1*8 +1*4 +1*1

= 128 + 32 + 8 + 4 + 1

= 173

Então: 10101101 em binário é 173 em decimal. Se estiverem duvidando, calculem na calculadora do windows (ela tem conversão de base).

Para converter de decimal para binário, é só ir dividindo o valor a ser convertido por 2 e ir colocando o resto da divisão por no numero, considerando o resultado da divisão na ultima divisão. Complicou? Simples:

Para converter 173 em binário:

173 / 2 = 86 restando 1

86 / 2 = 43 restando 0

43 / 2 = 21 restando 1

21 / 2 = 10 restando 1

10 / 2 = 5 restando 0

5 / 2 = 4 restando 1

4 /2 = 2 restando 0

2 / 2 = 1 restando 0

Então: O primeiro algarismo é o resto da primeira divisão: 173/2 = 1. O segundo algorismo é o resto da 2a divisão: 86/2, 0. E assim segue até a penultima divisão. na penultima divisão teremos o seguinte numero:

xy0101101

Observe que há um xy ali: Na ultima divisão determinaos estes valores: O resultado e o resto da divisão. sao o y e o x respectivamente: Então, 2/2 é igual a 1 (y) restando 0 (x). Substituindo temos:

010101101. Como o zero “a esquerda” não tem valor, o resultado é: 10101101.

Na infomática, um numero “0 ou 1″ é um BIT. Um conjunto de 8 bits é um Byte. Por que 8 bits = 1 byte? Por que não 9, 10…? Nenhum motivo em especial… talvez seja porque a pessoa que estava estudando como fazer um computador, há muito tempo atras, estava desenhando o circuito da máquina, tinha terminado o desenho de 8 fios para levar os bits, ai olhou pro relógio, viu que ja estava acabando o expediente, era 6a deira e ela falou “Ah, vou para casa que tem feriadão, vai ficar com 8 bits mesmo”… :P E deste então, o byte é a unidade padrao usada para armazenamento é o byte….

Um belo dia, alguém ficou cansado de escrever “10101010, 10101111, 10111111″ quando queria demonstrar bytes, e resolveu inventar o numeros Hexadecimais. Desde então,na informática, é comum encontrarmos valores como:

0×33, 0xFF, 0x3A, 0×41.

Estes são números hexadecimais. Os números Hexadecimais vão de 0 até F, ou seja: 0, 1, 2, 3, 4, 5, 6, 7,8 , 9, A, B, C, D, E, F (Tenha a mente aberta: Em hexadecimal, A, B, C, D, E, F são números! Assim como X e I são números romanos, A até F são números em hexadecimal), e representam o seguinte:

Números hexadecimais d e 0 a 9, são números de 0 a 9 em decimal (duh…)

os números A, B, C, D, E, F representam 10, 11, 12, 13, 14, 15 respectivamente. O prefixo 0x serve para indicar que aquele valor é um valor hexadecimal.

É possível usar a mesma fórmula para converter binário para decimal, para converter hexadecimal para decimal, por exemplo: Convertendo FC para decimal:

Lembrando que F=15 e C=12. Lembrando também que a base é 16

A1*X^1 + A0*X^0

F*X^1 + C*X^0

F=15, C=12

15*X^1 + 12*X^0

X = 16 (base 16)

= 15*16^1 + 12*16^0

= 15*16 + 12*1

= 240 + 12

= 252

É possível converter de decimal para hexadecimal usando a mesma seqüencia de divisão que demonstrei para binário: Para converter 425 para hexadecimal é simples:

425 / 16 = 26 RESTANDO 9

26 / 16 = 1 RESTANDO 10 (10 é A em hexadecimal)

1 / 16 = 0 RESTANDO 1.

Portanto,o numero é 01A9

A ultima representação é Octal: O principio é o mesmo da hexadecimal, porém com base 8 e numeros de 0 a 7. 10 em octal é 8 em decimal. 20 em octal é 16 em decimal. As formulas de conversão funcionam para octal também (elas funcionam para todas as bases). Desta vez não vou fazer um exemplo.

Sem duvida, o meio de representação mais usado é o Hexadecimal. E por que? simples: 2 digitos hexadecimais equivalem a 1 byte. Observe: Cada digito hexadecimal pode representar numeros entre 0 e 15. 4 bits também podem representar numeros entre 0 e 15.

Repare a seguinte relação:

Hexadecimal 0 = 0000 Binario
Hexadecimal 1 = 0001 Binario
Hexadecimal 2 = 0010 Binario
Hexadecimal 3 = 0011 Binario
Hexadecimal 4 = 0100 Binario
Hexadecimal 5 = 0101 Binario
Hexadecimal 6 = 0110 Binario
Hexadecimal 7 = 0111 Binario
Hexadecimal 8 = 1000 Binario
Hexadecimal 9 = 1001 Binario
Hexadecimal A = 1010 Binario
Hexadecimal B = 1011 Binario
Hexadecimal C = 1100 Binario
Hexadecimal D = 1101 Binario
Hexadecimal E = 1110 Binario
Hexadecimal F = 1111 Binario

Como cada digito hexadecimal é 4 bits, 2 digitos hexadecimal representam 1 byte, que é a unidade de informação usada pelos computadores. Devido a essa relaçao exata, é possivel converter “no olhometro” de binário para hexadecimal e vice versa, por exemplo, o byte 10011101, para converter para hexadecimal, basta agrupar em grupos de 4 bits: 1001 1101, e ai ver na tabela: 1001 = 9, 1101 = D, portanto, 10011101 = 9D. Simples não?

About these ads

4 respostas para Fundamentos da Informática – Bases Decimal, Binaria, Octal, Hexadecimal.

  1. lanhkm disse:

    Muito legal, bem explicado!!!

  2. Suellen disse:

    Muito Bom..estou aprendendo isso no meu curso tecnico mais encontrei um pouco de dificuldades para aprender..!!
    Mas esta publicação é muito útil!!

  3. Hellen Almeida disse:

    Parabéns. Adorei o explicação. fácil, prática e objetiva. Sua contribuição tem sido muito importante para que eu possa resolver os exercícos, levando em consideração que estou há 20 anos fora de sala de aula, imagine.

  4. Romulo disse:

    sobre teoria de transformaçoes de bases…tem o jeito mais simples e pratico do que o citado que é dividindo.Exemplo mais pratico:101110(2) na base decimal usamos a tabela como 1,2,4,8,16,32,64,128…
    dai temos um numero na base decimal par pois termina em zero; temos 101110(2) temos 1=32 + 1=8 + 1=4 + 1=2 somando …entao 101110(2) = 46(10).

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: