Conversão entre sistemas numéricos

Entre os sistemas numéricos mais utilizados na computação temos:

  • Sistema Binário
  • Sistema Decimal
  • Sistema Octal
  • 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. Entre eles é possível realizar conversões, como de binário para decimal, decimal-octal, octal-hexadecimal. Apresentamos a seguir as principais conversões entre sistemas numéricos.

Binário

Conversão de Decimal para Binário

Para realizar a conversão utilizamos método de Divisão Repetida.

Para converter por exemplo, o número decimal 1985 em binário procedemos como segue:

– Divida o número decimal por 2 (dois), se o resultado for exato anote o valor 0 (zero), se não for exato anote o valor 1 (um), lembrando que esse valor deve ser anotado da direita para a esquerda ou como explicado abaixo do exemplo;

– Pegue a parte inteira do resultado e repita a operação sucessivamente até se obter 0 (zero) como parte inteira, como segue o exemplo abaixo.:

     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

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.

Conversão de Binário para Decimal

  1      1     1    1     1     0     0     0     0     0     1
2^10 * 1 + 2^9 * 1 + 2^8 *1 + 2^7 * 1 + 2^6 * 1 + 2^5 * 0 + 2^4 * 0 + 2^3 * 0 + 2^2 * 0 + 2^1 * 0 + 2^0 * 1
1024   +   512   +   256   +  128    +  64    +   0    +   0     +   0 +       0    +   0     +   1
                                              =
                                             1985

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 0,0625 * 16 = 1
         124 | 16 sobra 0,75   * 16 = 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^2) +  (12 * 16^1) + (1 * 16^0)
(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é encotrarmos restos que sejam menores ou iguais a oito.

       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 * 3  8^2 * 7  8^1 * 0  8^0 * 1
               +        +        +                          
       1536      448      0        1             
                    =
                   1985