A conversão entre sistemas numéricos é feita com base em algumas regras e serve para que se obtenha o valor de um elemento no sistema numérico mais adequado a cada situação. Entre os sistemas numéricos mais utilizados na computação há o binário, decimal, octal e sistema hexadecimal. Cada um destes, apresentando sua própria faixa de valores possíveis e cada um possui uma aplicação específica, dentro da Ciência da Computação. Sistema binário Conversão de decimal em binário Para realizar a conversão utiliza-se o método de divisão repetida. Para converter, por exemplo, o número decimal 1985 em binário deve-se fazer o seguinte: 1. Dividir o número decimal por 2. Caso o resultado seja exato, aquela divisão resultará no valor 0 (zero), se não for exato resultará no 1 (um). Esse valor deve ser anotado da direita para a esquerda ou como explicado abaixo do exemplo. 1. Deve-se dividir o número até que o quociente da divisão seja menor ou igual a 1 (um). Divisão = Quociente = Binário 1985/2 = 992,5 = 1 992/2 = 496 = 0 496/2 = 248 = 0 248/2 = 124 = 0 124/2 = 62 = 0 62/2 = 31 = 0 31/2 = 15,5 = 1 15/2 = 7,5 = 1 7/2 = 3,5 = 1 3/2 = 1,5 = 1 1/2 = 0,5 = 1 1. Observe que o resultado é obtido juntando o resultado da última para a primeira divisão, ou seja de baixo para cima, onde o resultado é o seguinte número binário: 11111000001. Outra forma desta conversão (mais prática) é ir subtraindo o número em decimal das potências de base 2 até dar 0. Subtraia da maior potência de base 2 possível. Deve se marcar 1 quando você efetua a subtração, e 0 no restante (os zeros à esquerda devem ser desprezados). Por exemplo : 128 64 32 16 8 4 2 1 22 --> 0 0 0 1 0 1 1 0 Logo 22 em decimal = 10110 em binário O maior número de base 2 possível pra ser subtraído de 22 é 16, sobrando 6. O maior número possível para subtrair de 6 é 4, sobrando 2. O maior número a ser subtraído de 2 é o próprio 2, resultando 0 e assim finalizando a conversão. Outro exemplo: 128 64 32 16 8 4 2 1 35 --> 0 0 1 0 0 0 1 1 logo 35 em decimal = 100011 em binário pois: 35 - 32 = 3 3-2 =1 1-1 =0 Conversão de Binário para Decimal 1 1 1 1 1 2^10 * 1 2^9 * 1 2^8 *1 2^7 2^1 * 0 2^0 * 1 + + + + + 1024 512 256 128 = 1985 0 0 0 0 0 1 * 1 2^6 * 1 2^5 * 0 2^4 * 0 2^3 * 0 2^2 * 0 + 64 + 0 + 0 + 0 + 0 0 1 Da direita para a esquerda elevamos 2 à potência do índice e multiplicamos pelo dígito binário identificado por esse índice. Desta forma o primeiro dígito binário que encontramos é o 1 no índice 0 , assim temos: 2^0 * 1. Após realizarmos essa operação para todos os zeros para todos os dígitos, somamos o resultado. O resultado desta soma é o número que estamos buscando. Hexadecimal Conversão de Decimal para Hexadecimal Para converter de decimal para hexadecimal, procede-se do mesmo modo que na conversão decimal-binário. Basta agora dividir por 16 e não mais por 2. 1985 | 16 sobra 1 124 | 16 sobra 12 7 7 12 1 = 7 C 1 7C1 Para obter o resultado juntamos o resultado da última divisão com o resto das divisões anteriores na sequência, aqui temos que transformar qualquer número maior que 9 em suas respectivas representações alfabéticas. Como em nosso exemplo temo os respectivos resultados, 7, 12 e 1, temos que transformar 12 em C, seu correspondente alfabético. Assim o resultado é igual a 1985 decimal é igual a 7C1 em hexadecimal. Conversão de Hexadecimal para Decimal Para realizar a conversão realizamos os seguintes passos: Primeiro transformamos cada dígito alfabético em número. assim o C será convertido para 12 e os números ficarão 7, 12 e 1. Agora multiplicamos cada número por 16 ^ m, onde m é casa decimal onde ele se encontra, sendo que o dígito mais a direita é 0. (7 * 16²) + (12 * 16¹) + (1 * 16°) (7 * 256) + (12 * 16) + (1) 1792 + 192 + 1 1985 Obtemos assim o resultado esperado. O número 7C1 convertido para 1985. Octal Conversão de Decimal para Octal Utiliza-se divisão sucessiva para encontrar o valor octal a partir o número decimal. Dividimos sucessivamente o número 1985 até encontrarmos restos que sejam menores ou iguais a sete. 1985 | 8 385 248 | 8 65 08 31 | 8 1 0 7 3 Resultado da divisão 3701. Obtemos esse número juntando o resultado da última divisão e o resto das divisões anteriores. Conversão de Octal para Decimal 3 7 0 1 8³ * 3 8² * 7 8¹ * 0 8° * 1 + + + 1536 448 0 1 = 1985