Conversão de base numérica

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

Conversão de base numérica é o nome dado à passagem de um valor de uma base para outra mantendo o valor quantitativo, mas alterando a simbologia para se adequar à nova base.

Introdução

Atualmente é muito comum o uso de bases numéricas derivadas de 2 ao se utilizar computadores em baixo nível (quando se programa um, por exemplo). Como também é corriqueiro o uso da base 60 para medidas de ângulos e de tempo.

O homem contemporâneo está familiarizado com a base 10 (decimal), no dia-a-dia, já os computadores atuais trabalham exclusivamente com a base 2 (binário), assim é preciso fazer conversões entre estas bases quando se pretende inserir algum valor para ser processado pelo computador.

Obviamente que ninguém vai ficar convertendo números para o binário para então digitá-lo na calculadora e depois converter o resultado para decimal para usá-lo. Esse processo de conversão está, no caso da calculadora, pré-programado para ser feito por ela, o ponto a ser entendido aqui é que internamente ela faz tudo em binário, em outras palavras: ela converte o que foi digitado para binário, faz o cálculo, converte o resultado para decimal e apresenta o resultado.

No entanto quando se está escrevendo um programa é normal a introdução de valores no meio do código, e em muitas situações a digitação de códigos binários é muito complicada/longa para o programador, então existem outros códigos que facilitam a digitação, na prática é muito utilizada a base 8 (octal), e a base 16 (hexadecimal), ambas derivadas da base 2 (note que estas bases facilitam a digitação somente, de qualquer forma ao ser compilado toda e qualquer base usada para escrever o programa é convertida para base 2 para que o valor seja usado pelo processador).

A medida angular de um grau é dividida em 60 minutos de arco, e cada minuto de arco em 60 segundos de arco. Trata-se de uma unidade de medida usada em astronomia e geometria.[1]

Nas medidas usuais de tempo, uma hora é dividida em 60 minutos, e cada minuto em 60 segundos. Além das unidades de tempo usadas no quotidiano, existem ainda várias frações do segundo, que estão por sua vez em base decimal. Estas são mais freqüentemente utilizadas em Física.[2]

Exemplos

Valores numéricos representados em algumas bases
10 (Decimal) 2 (Binário) 8 (Octal) 16 (Hexadecimal) 60 (Sexagesimal)
0 0 0 0 0
3 11 3 3 3
10 1010 12 A 10
15 1111 17 F 15
301 100101101 455 12D 5,1
1379 10101100011 2543 563 22, 59
42685 1010011010111101 123275 A6BD 11, 51, 25

Repare que quanto maior a base, o número de símbolos usados para representar o mesmo valor será menor que nas bases menores, é isso que facilita a digitação e memorização dos valores.

Nota-se a existência de virgula entre os símbolos com valores menores que 60 na coluna da base sexagesimal, pois se trata de uma notação posicional, que de acordo com o autor Asger Aaboe, ao utilizar-se como comparativo as bases decimais, para descrever a utilização da virgula na base sexagesimal, expressa-se por "As semelhanças entre nosso próprio sistema numérico e o dos Babilônios são varias: nós, como eles, empregamos um número finito de símbolos ou algarismos (nós usamos dez) para exprimir todos os inteiros; fazemos também estes algarismos cumprirem sua missão atribuindo importância a suas posições, de modo que com cada mudança de casa para a esquerda, seu valor seja multiplicado por um fator constante (conosco, 10, com os babilônios, 60). Nós como eles, usamos uma extensão deste principio para exprimir certas frações (frações decimais em nosso caso) fazendo valer mesmo além da casa para a direita significa dividir seu valor pelo fator constante 10, ou 60, que desempenham um papel tão crucial, são chamados as bases dos dois sistemas numéricos, que são designados respectivamente por sistema decimal e sexagesimal; e da mesma maneira que falamos de frações decimais, chamamos suas correspondentes babilônias de frações sexagesimais."[3]

Repare também que no caso da simbologia da base hexadecimal são usadas algumas letras, isso ocorre porque temos símbolos para representar somente os algarismos de 0 a 9, como na base 16 é necessária a representação de algarismos de 10 a 15 então as letras de A até F são utilizadas para isso resultando na sequência: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Conversões

A conversão entre bases pode ser realizada por meio de divisões sucessivas, que funciona para qualquer combinação de bases, ou então, para os casos em que a base de origem e de destino pertencem a mesma base logarítmica, a conversão pode ser feita simplesmente por reagrupamento dos algarismos.

Divisões sucessivas

Neste método uma das bases tem que ser a decimal. Assim se nenhuma delas for decimal é necessário primeiro converter a base de origem para decimal e então converter para base de destino.

Tomemos o exemplo da conversão do número base 10 (decimal), 745 para a base 4. Uma série de divisões inteiras é realizada até que o valor zere, o divisor usado é o valor da base de destino e os restos das divisões inteiras é a sequência de algarismos da base de destino. Como a base de origem é decimal podemos usar o método diretamente:

Portanto

Outro exemplo para a base 7:

Como o valor de origem está na base 18 primeiro precisamos convertê-lo para a base 10:

Agora sim aplicamos as divisões:

Assim:

Mais um exemplo: converter para a base 3:

Assim:

Reagrupamento

Quando as bases envolvidas são da mesma base logarítmica então a conversão pode ser facilmente feita por simples reagrupamentos dos algarismos e uso de pequenas tabelas de conversão. Por exemplo, entre as bases 16 e 8 ou entre 2 e 16 ou ainda entre as bases 27 e 9.

Na prática é muito usada a conversão entre as bases 2, 8 e 16 pelos motivos citados anteriormente. Segue uma tabela básica para estas conversões:

Tabela de conversão de bases de origem binária
Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Binário 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111
Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F


Convertendo para a base 16:

Pela tabela vemos que para cada algarismo em hexadecimal são necessários 4 algarismos para realizar sua representação em binário. Então o primeiro passo é separar o valor em base 2 em blocos de 4 algarismos:

Depois, consultando a tabela convertemos o valor de cada bloco para seu equivalente hexadecimal, assim teremos:

Convertendo para base 8:

Pela tabela vemos que para cada algarismo em octal são necessários 3 algarismos para realizar sua representação em binário. Então devemos separar o valor em base 2 em blocos de 3 algarismos:

Depois, consultando convertemos o valor de cada bloco para seu equivalente octal, assim teremos:

Finalmente uma conversão do valor para octal:

Primeiro convertemos para os blocos binários equivalentes com 4 dígitos:

Agora reagrupamos em blocos de 3 dígitos:

Assim:


Conversão de decimal para binário

A técnica de divisões sucessivas é utilizada para conversão de números inteiros do sistema decimal para o binário. Esta técnica consiste em dividir o número original pela base 2, o resto da divisão será um dígito e o resultado da divisão é novamente dividido por 2. Esta última etapa se repete até que o resultado da divisão seja zero. Para melhor compreensão do método, a imagem ao lado mostra um exemplo de conversão do número decimal 19 para binário.

Exemplo de conversão do número decimal 19 para binário.

Como mostra o exemplo, após as sucessivas divisões, os dígitos (resto da divisão) são ordenados a partir da esquerda para direita, formando assim o código binário.

Para a conversão de números fracionários, é utilizada a técnica de multiplicações sucessivas, no entanto, a parte inteira do número ainda é convertida pelo método das divisões sucessivas. Neste método, multiplica-se o número fracionário por 2 (base do sistema binário) e a parte inteira do número resultante é o primeiro dígito fracionário do binário. A parte fracionária restante é novamente multiplicada por 2 e a parte inteira do número resultante é o segundo dígito fracionário do binário. Esses passos são seguidos até que o resultado da multiplicação seja um número inteiro ou até a precisão desejada.

Exemplo
Conversão do número 19,6875

Do exemplo anterior: (19)10 = (10011)2
0,6875 x 2 = 1,375
0,375 x 2 = 0, 75
0,75 x 2 = 1,5
0,5 x 2 = 1,0 – fim.
(19,6875)10 = (10011,1011)2

Dica: Se as divisões sucessivas forem feitas com o uso de uma calculadora, é possível saber o resto da divisão da seguinte forma: se o resultado é um número inteiro, então o resto é 0; se o resultado tem parte fracionária, então o resto é 1. Lembre que quando o resultado for fracionário, utiliza-se somente a parte inteira para realizar a próxima divisão.[4]

Conversão de binário para decimal

A conversão de números da base 2 para base 10 é bastante simples. Basta reescrever o número numa expansão de base 2, conforme o exemplo abaixo.
(0110)2 = 0(3)1(2)1(1)0(0)
0*2^3 + 1*2^2 + 1*2^1 +0*2^0 = 0 + 1*4 + 1*2 + 0 = 4 + 2 = (6)10[5]o

Conversão de octal para decimal

A conversão de números da base 8 para base 10 é muito semelhante à conversão de binário para decimal. Basta reescrever o número numa expansão de base 8, conforme o exemplo a seguir. (372)8 = 3*82 + 7*81 + 2*80 = 3*64 + 7*8 + 2*1 = (250)10[5]

Conversão de octal para binário

A conversão de números de base 8 para a base 2 é feita convertendo cada dígito no seu equivalente binário de 3 bits. A tabela abaixo mostra o equivalente binário de cada dígito do sistema octal:

Dígito octal 0 1 2 3 4 5 6 7
Binário equivalente 000 001 010 011 100 101 110 111

Por exemplo, para converter (472)8 em binário, devemos substituir os números: 4 em 100; 7 em 111; 2 em 010; Desta forma, obtemos o número binário 100111010.[5]

Conversão de binário para octal

Para fazer a conversão de números binários para octais, utiliza-se a mesma tabela de conversão utilizada para converter números octais em binários. Para isso, cada grupo de 3 bits do sistema binário é convertido em seu dígito equivalente do sistema octal conforme exemplo a seguir:

O binário 100111010 tem os seguintes grupos de 3 bits: 100, 111 e 010. Assim, o seu equivalente em octal é o número 472.
Caso o binário não tenha grupos regulares de 3 bits, podem ser adicionados até 2 0s à esquerda do número. Por exemplo, o binário 11010110 pode ser adicionado de 1 zero, passando a ser composto pelos grupos 011, 010 e 110. [5]

Conversão de decimal para hexadecimal

Da mesma maneira que é feita a conversão de decimal para binário, a conversão para hexadecimal é feita utilizando as divisões sucessivas. Entretanto, nesse caso, as divisões dos números inteiros são feitas por 16.[5]

Conversão de hexadecimal para binário

Para transformar números hexadecimais em binários, cada dígito hexadecimal deve ser convertido no seu equivalente binário de 4 bits, conforme a tabela (X).
Por exemplo, o número (BA6)16 = 101110100110 , já que B equivale a 1011, A equivale a 1010 e 6 equivale a 0110.[5]

Conversão de binário para hexadecimal

Fazendo o inverso do processo anterior, é possível transformar números binários em hexadecimais. Ou seja, deve-se converter os grupos de 4 bits do sistema binário em seus dígitos equivalente do sistema hexadecimal. Assim como para conversão de sistema binário em octal, são acrescentados 0s para completar os grupos do sistema binário quando necessário.
Exemplo: Para converter o número 1110100110, são adicionados dois zeros a esquerda do número, formando os grupos de 4 bits 0011, 1010 e 0110. Convertendo nos equivalentes em hexadecimal, temos o número 3A6.[5]


Referências

Andrew S.Tenenbaum, Organização Estrutura de Computadores, pág 399,Anexo 3.

  1. Conmetro, Conselho Nacional de Metrologia, Normalização e Qualidade Industrial, Resolução nº 12, de 12 de outubro de 1988, Unidades do Sistema Internacional de Unidades, p. 16.
  2. «Mecânica (Ensino Médio) | Unidade de tempo | e-física». efisica.if.usp.br. Consultado em 2016-08-29. 
  3. Abate, Asger. (2002). Episódios da História Antiga da Matemática. pg. 14-15.
  4. Erro de citação: Código <ref> inválido; não foi fornecido texto para as refs de nome UYEMURA
  5. a b c d e f g Erro de citação: Código <ref> inválido; não foi fornecido texto para as refs de nome TOCCI

Ligações externas

Wiki letter w.svgEste artigo sobre matemática é mínimo. Você pode ajudar a Wikipédia expandindo-o.