Translate

terça-feira, 22 de fevereiro de 2011

Conversão de base (hexadecimal / decimal / binário)

Transformando numero decimal em hexadecimal

Numeros Hexadecimais são representados em 16 posições:

{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}

Para transformar basta dividir um número decimal qualquer por 16, usamos o seu resto para descobrir o Hexadecimal, a conta acaba quando a divisão chegar em zero.
Obs.: Usaremos somente a parte inteira da divisão, a fração será ignorada.

Ex.:
Vamos transformar o número decimal 302 em hexadecimal.

302 : 16 = 18 >>>> Resto: 14 = E
18 : 16 = 1 >>>>>> Resto: 2 = 21 : 16 = 0 >>>>>> Resto: 1 = 1
302(d) = 12E(h)



Transformando numero hexadecimal em decimall

  1. Localize o "último dígito" do número hexadecimal que você deseja converter.

Depois, você identificou o último dígito, então você vai multiplicar o "último dígito", com (16 ~ 0). Em outras palavras, na etapa número dois, você vai multiplicar o valor do "último dígito", com (16 à potência de zero).
Exemplo: "O valor último dígito" x (16 ~ 0) = "O valor último dígito"
Note que o poder de 0 de qualquer número é sempre 1.
Uma vez, de ter realizado a fórmula sobre o último dígito, anote o resultado e, em seguida, passar para o dígito anterior sobre o (seu) esquerda.
3. Cada vez que você passar para um dígito anterior, você vai precisar de aumentar o poder (16 ~ X), da fórmula 1 antes de executar a fórmula em que o dígito.
4. Basta executar a fórmula (dígito valor x (16 ~ X) em todos os dígitos restantes até que todos os resultados de dois dígitos foram escritos para baixo.
5. Em seguida, adicione (soma) de todos os escritos para baixo (armazenado) os resultados em conjunto para obter o número da resposta final.
Aqui está um exemplo: Estamos convertendo o fb8 número hexadecimal em decimal (o número 8 é o "último dígito")
  1. 8 x (16 ~ 0) = 8
  2. B x (16 ~ 1) = 176
  3. F x (16 ~ 2) = 3840
  4. 8 + 176 + 3840 = 4024
Assim, o equivalente decimal do fb8 hexadecimal número é 4.024.
Aqui está outro exemplo: Estamos a transformar o número hexadecimal para decimal 7747 (o número 7 é o "último dígito")
  1. 7 x (16 ~ 0) = 7
  2. 4 x (16 ~ 1) = 64
  3. 7 x (16 ~ 2) = 1792
  4. 7 x (16 ~ 3) = 28672
  5. 7 + 64 + 1792 + 28672 = 30535
Assim, o equivalente decimal do número hexadecimal 7747 é 30.535.
Segue-se uma referência rápida dos poderes do 16:
16 ~ 0 = 1
16 ~ 1 = 16
16 ~ 2 = 256
16 ~ 3 = 4096
16 ~ 4 = 65536
16 ~ 5 = 1048576


Transformando numero decimal em binário


Basta dividir o num decimal por 2 até não existir mais divisão. O binario está representado pelo resto a partir da última conta

Numero 13 em decimal

13/2 = 6 resto 1
6/2 = 3 resto 0
3/2 = 1 resto 1
1 (um não divide por 2)

Agora pegue os números do resto da divisão de baixo para cima.

13 em binario fica: 1101
outro exemplo:
divida o numero por 2 sucessivas veses até chegar a 1 dividido por 2.
ex 57:2=28 resto 1
28:2=14 resto 0
14:2 = 7 resto 0
7:2=3 resto 1
3:2=1 resto 1
1:2=0 resto 1
entao, o numero 57 na base 10 equivale a 111001 na base 2
Transformando numero binário em decimal
Considere os seguintes números:

10001101
00100111
01010101

Um jeito bem simples de se transformar isto em decimal, é utilizando uma "tabelinha de pesos" para cada posição do número binário.

A tabelinha seria esta:

128 - 64 - 32 - 16 - 8 - 4 - 2 - 1

Para utilizá-la, coloque cada algarismo binário em baixo de um número da tabelinha, multiplique-os e some-os:

128 - 64 - 32 - 16 - 8 - 4 - 2 - 1
1 - 0 - 0 - 0 - 1 - 1 - 0 - 1
--------------------------------------…
128 + 0 + 0 + 0 + 8 + 4 + 0 + 1 = 141

128 - 64 - 32 - 16 - 8 - 4 - 2 - 1
0 - 0 - 1 - 0 - 0 - 1 - 1 - 1
--------------------------------------…
32 + 4 + 2 + 1 = 39

128 - 64 - 32 - 16 - 8 - 4 - 2 - 1
0 - 1 - 0 - 1 - 0 - 1 - 0 - 1
--------------------------------------…
64 + 16 + 4 + 1 = 85

Em tempo, a tabela pode se estender para números maiores (de 16 bits, 32 bits, etc). Lembre-se apenas que o próximo número (o mais à esquerda) será sempre o dobro do número da direita. Exemplos:

128 - 64 - 32 - 16 - 8 - 4 - 2 - 1 = 8 bits
32768 - 16384 - 8192 - 4096 - 2048 - 1024 - 512 - 256 - 128 - 64 - 32 - 16 - 8 - 4 - 2 - 1 = 16 bits

de uma forma simples, podemos tratar assim:
1000 (2) = 8 (10)

1 x 2^3 + 0 x 2^2 + 0 x 2^1 + 0 x 2^0



A soma das potências de 2, crescente da direita pra esquerda, multiplicada pelo valor lógico (0 ou 1).

É possível encontrar na WEB softwares que auxiliam no dia a dia; segue abaixo o link de um programa leve e prático.
http://quick-number-base-converter.software.informer.com/1.3/