Você está na página 1de 8

Converso entre sistemas numricos

Origem: Wikipdia, a enciclopdia livre. Sistemas numricos por base Sistema decimal (10) 2, 3, 4, 8, 16, 32, 64 1, 3, 6, 9, 12, 20, 24, 30, 36, 60
v e

A converso entre sistemas numricos feita com base em algumas regras e serve para que se obtenha o valor de um elemento no sistema numrico mais adequado a cada situao. Entre os sistemas numricos mais utilizados na computao h o binrio, decimal, octal e sistema hexadecimal. Cada um destes, apresentando sua prpria faixa de valores possveis e cada um possui uma aplicao especfica, dentro da Cincia da Computao.

Sistema binrio
Converso de decimal em binrio
Para realizar a converso utiliza-se o mtodo de diviso repetida. Para converter, por exemplo, o nmero decimal 1985 em binrio deve-se fazer o seguinte: 1. Dividir o nmero decimal por 2. Caso o resultado seja exato, aquela diviso resultar no valor 0 (zero), se no 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 nmero at que o quociente da diviso seja menor ou igual a 1 (um). Diviso = Quociente = Binrio 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 diviso, ou seja de baixo para cima, onde o resultado o seguinte nmero binrio: 11111000001. Outra forma desta converso (mais prtica) ir subtraindo o nmero em decimal das potncias de base 2 at dar 0. Subtraia da maior potncia de base 2 possvel. Deve se marcar 1 quando voc efetua a subtrao, 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 binrio

O maior nmero de base 2 possvel pra ser subtrado de 22 16, sobrando 6. O maior nmero possvel para subtrair de 6 4, sobrando 2. O maior nmero a ser subtrado de 2 o prprio 2, resultando 0 e assim finalizando a converso. 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 binrio pois: 35 - 32 = 3 3 - 2 = 1 1 - 1 = 0

Converso de Binrio para Decimal


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

Da direita para a esquerda elevamos 2 potncia do ndice e multiplicamos pelo dgito binrio identificado por esse ndice. Desta forma o primeiro dgito binrio que encontramos o 1 no ndice 0 , assim temos: 2^0 * 1. Aps realizarmos essa operao para todos os zeros para todos os dgitos, somamos o resultado. O resultado desta soma o nmero que estamos buscando.

Hexadecimal
Converso de Decimal para Hexadecimal
Para converter de decimal para hexadecimal, procede-se do mesmo modo que na converso decimal-binrio. Basta agora dividir por 16 e no 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 diviso com o resto das divises anteriores na sequncia, aqui temos que transformar qualquer nmero maior que 9 em suas respectivas representaes alfabticas. Como em nosso exemplo temo os respectivos resultados, 7, 12 e 1, temos que transformar 12 em C, seu correspondente alfabtico. Assim o resultado igual a 1985 decimal igual a 7C1 em hexadecimal.

Converso de Hexadecimal para Decimal


Para realizar a converso realizamos os seguintes passos:
y y

Primeiro transformamos cada dgito alfabtico em nmero. assim o C ser convertido para 12 e os nmeros ficaro 7, 12 e 1. Agora multiplicamos cada nmero por 16 ^ m, onde m casa decimal onde ele se encontra, sendo que o dgito 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 nmero 7C1 convertido para 1985.

Octal
Converso de Decimal para Octal
Utiliza-se diviso sucessiva para encontrar o valor octal a partir o nmero decimal. Dividimos sucessivamente o nmero 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 diviso 3701. Obtemos esse nmero juntando o resultado da ltima diviso e o resto das divises anteriores.

Converso de Octal para Decimal


3 8 * 3 1536 7 0 8 * 7 8 * 0 + + 448 0 = 1985 1 8 * 1 + 1

SISTEMAS DE NUMERAO

Converses entre Bases


Vamos analisar agora as regras gerais para converter nmeros entre duas bases quaisquer. Converses entre as bases 2, 8 e 16 As converses mais simples so as que envolvem bases que so potncias entre si. Vamos exemplificar com a converso entre a base 2 e a base 8. Como 23 = 8, separando os bits de um nmero binrio em grupos de tres bits (comeando sempre da direita para a esquerda!) e convertendo cada grupo de tres bits para seu equivalente em octal, teremos a representao do nmero em octal. Por exemplo: 10101001 2 = 10.101.001 2 (separando em grupos de 3, sempre comeando da direita para a esquerda) Sabemos que 0102 = 28 ; 1012 = 58 ; 0012 = 18 portanto 10101001 2 = 2518 Se voc ainda no sabe de cor, faa a converso utilizando a regra geral. Vamos agora exemplificar com uma converso entre as bases 2 e 16. Como 24 = 16, basta separarmos em grupos de 4 bits (comeando sempre da direita para a esquerda!) e converter. Por exemplo: 11010101101 2 = 110.1010.1101 2 (separando em grupos de 4 bits, sempre comeando da direita para a esquerda) Sabemos que 1102 = 616; 1010 2 = A16 ; 11012 = D16 ; portanto 11010101101 2 = 6AD16 Vamos agora exercitar a converso inversa. Quanto seria 3F5H (lembrar que o H est designando "hexadecimal") em octal? O mtodo mais prtico seria converter para binrio e em seguida para octal. 3F5H = 11.1111.0101 2 (convertendo cada dgito hexadecimal em 4 dgitos binrios) = = 1.111.110.101 2 (agrupando de tres em tres bits) = = 1765 8 (convertendo cada grupo de tres bits para seu valor equivalente em octal). Converso de Nmeros em uma base b qualquer para a base 10 Vamos lembrar a expresso geral j apresentada: Nb = an.bn + .... + a 2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + .... + a -n.b-n A melhor forma de fazer a converso usando essa expresso. Tomando como exemplo o nmero 1011012, vamos calcular seu valor representado na base dez. Usando a expresso acima, fazemos: 101101 2 = 1x25 + 0x2 4 + 1x23 + 1x2 2 + 0x21 + 1x20 = 32 + 0 + 8 + 4 + 0 + 1 = 4510 Podemos fazer a converso de nmeros em qualquer base para a base 10 usando o algoritmo acima. Exemplos: a) Converter 4F5H para a base 10 .

Soluo: Lembramos que o H significa que a representao hexadecimal (base 16). Sabemos ainda que F 16=15 10. Ento: 4x162 + 15x16 1 + 5x16 0 = 4x256 + 15x16 + 5 = 1024 + 240 + 5 = 1269 10 b) Converter 3485 9 para a base 10. Soluo: 3x9 3 + 4x92 + 8x91 + 5x9 0 = 3x729 + 4x81 + 8x9 + 5 = 2187 + 324 + 72 + 5 = 258810. c) Converter 7G16 para a base 10. Soluo: Uma base b dispe dos algarismos entre 0 e (b-1). Assim, a base 16 dispe dos algarismos 0 a F e portanto o smbolo G no pertence representao hexadecimal. d) Converter 1001,01 2 para a base 10. Soluo: 1x2 3 + 0x22 + 0x21 + 1x2 0 + 0x2 -1 + 1x2 -2 = 8 + 0 + 0 + 1 + 0 + 0,25 = 9,25 10 e) Converter 34,3 5 para a base 10. Soluo: 3x5 1 + 4x50 + 3x5 -1 = 15 + 4 + 0,6 = 19,6 10 f) Converter 38,3 8 para a base 10. Soluo: Uma base b dispe dos algarismos entre 0 e (b-1). Assim, a base 8 dispe dos algarismos 0 a 7 e portanto o algarismo 8 no existe nessa base. A representao 38,3 no existe na base 8. Converso de Nmeros da Base 10 para uma Base b qualquer A converso de nmeros da base dez para uma base qualquer emprega algoritmos que sero o inverso dos acima apresentados. Os algoritmos sero melhor entendidos pelo exemplo que por uma descrio formal. Vamos a seguir apresentar os algoritmos para a parte inteira e para a parte fracionria: Parte Inteira: O nmero decimal ser dividido sucessivas vezes pela base; o resto de cada diviso ocupar sucessivamente as posies de ordem 0, 1, 2 e assim por diante at que o resto da ltima diviso (que resulta em qociente zero) ocupe a posio de mais alta ordem. Veja o exemplo da converso do nmero 1910 para a base 2:

Experimente fazer a converso contrria (retornar para a base 10) e ver se o resultado est correto. Parte Fracionria Se o nmero for fracionrio, a converso se far em duas etapas distintas: primeiro a parte inteira e depois a parte fracionria. Os algoritmos de converso so diferentes. O

algoritmo para a parte fracionria consiste de uma srie de multiplicaes sucessivas do nmero fracionrio a ser convertido pela base; a parte inteira do resultado da primeira multiplicao ser o valor da primeira casa fracionria e a parte fracionria ser de novo multiplicada pela base; e assim por diante, at o resultado dar zero ou at encontrarmos o nmero de casas decimais desejado. Por exemplo, vamos converter 15,6510 para a base 2, com 5 e com 10 algarismos fracionrios:

Obs.: Em ambos os casos, a converso foi interrompida quando encontramos o nmero de algarismos fracionrios solicitadas no enunciado. No entanto, como no encontramos resultado 0 em nenhuma das multiplicaes, poderamos continuar efetuando multiplicaes indefinidamente at encontrar (se encontrarmos) resultado zero. No caso de interrupo por chegarmos ao nmero de dgitos especificado sem encontramos resultado zero, o resultado encontrado aproximado e essa aproximao ser funo do nmero de algarismos que calcularmos. Fazendo a converso inversa, encontraremos: Com 5 algarismos fracionrios: Parte inteira: 1111 2 = 1510 Parte fracionria: 0,101002 = 1x2 -1 + 0x2 -2 + 1x2 -3 + 0x2 -4 + 0x2-5 = 0,5 + 0,125 = 0,625 10 Com 10 algarismos fracionrios: Parte inteira: 1111 2 = 1510 Parte fracionria: 0,1010011001 2 = 1x2 -1 + 0x2 -2 + 1x2 -3 + 0x2 -4 + 0x2 -5 + 1x2 -6 + 1x2 -7 + 0x2 8 + 0x2 -9 + 1x2 -10 = 1/2 + 1/8 + 1/64 + 1/128 + 1/1024 = 0,5 + 0,125 + 0,015625 + 0,0078125 + 0,0009765625 = 0,6494140625 10 Ou seja, podemos verificar (sem nenhuma surpresa) que, quanto maior nmero de algarismos forem considerados, melhor ser a aproximao. Converso de Nmeros entre duas Bases quaisquer Para converter nmeros de uma base b para uma outra base b' quaisquer (isso , que no sejam os casos particulares anteriormente estudados), o processo prtico utilizado converter da base b dada para a base 10 e depois da base 10 para a base b' pedida. Exemplo: Converter 43 5 para ( )9. 435 = (4 x 5 + 3)10 = 2310 ==> 23/9 = 2 (resto 5) logo 43 5 = 2310 = 25 9

SISTEMAS DE NUMERAO

Aritmtica em Binrio
A taboada da soma aritmtica em binrio muito simples. So poucas regras: 0+0=0 0+1=1 1+0=1 1 + 1 = 0 (e "vai 1" para o dgito de ordem superior) 1 + 1 + 1 = 1 (e "vai 1" para o dgito de ordem superior) Exemplo: Efetuar 011100 + 011010 Obs.: 1) Lembre-se: soma-se as colunas da direita para a esquerda, tal como uma soma em decimal. Obs.: 2) No exemplo, so usadas, em seqncia, da direita para a esquerda, todas as regrinhas acima. Obs.: 3) Na primeira linha, em azul, indicado o "vai um". Obs.: 4) Por simplicidade, no exemplo estamos considerando os dois nmeros positivos. Soluo: 11-----> "vai um" 011100 011010+ ---------110110 Vamos ver agora a taboada da subtrao: 0-0=0 0 - 1 = 1 ("vem um do prximo") 1-0=1 1-1=0 Obs.: Como impossvel tirar 1 de zero, o artifcio "pedir emprestado" 1 da casa de ordem superior. Ou seja, na realidade o que se faz subtrair 1 de 10 e encontramos 1 como resultado, devendo ento subtrair 1 do dgito de ordem superior (aquele 1 que se "pediu emprestado"). Vamos lembrar que esse algoritmo exatamente o mesmo da subtrao em decimal a que j estamos acostumados desde o curso primrio. Exemplo: Efetuar 111100 + 011010 Obs.: 1) Lembre-se: subtrai-se as colunas da direita para a esquerda, tal como uma subtrao em decimal. Obs.: 2) No exemplo, so usadas, em seqncia, da direita para a esquerda, todas as regrinhas acima. Obs.: 3) Na primeira linha, em vermelho, indicado o "vem um". Obs.: 4) Por simplicidade, no exemplo estamos considerando os dois nmeros positivos. Soluo: ---02-> "vem um" 11100 01010-

---------10010 Complemento a Base A implementao do algoritmo da subtrao em computadores complexa, requerendo vrios testes. assim, em computadores a subtrao em binrio feita por um artifcio. O mtodo utilizado o "Mtodo do Complemento a Base" que consiste em encontrar o complemento do nmero em relao base e depois somar os nmeros. Os computadores funcionam sempre na base 2, portanto o complemento base ser complemento a dois. Computadores encontram o complemento a dois de um nmero atravs de um algoritmo que pode ser assim descrito: - se o nmero positivo, mantenha o nmero (o complemento de um nmero positivo o prprio nmero) -se o nmero negativo: ---inverta o nmero negativo ou o subtraendo na subtrao (todo 1 vira zero, todo zero vira um) --- some 1 ao nmero em complemento --- some as parcelas (na subtrao, some o minuendo ao subtraendo) --- se a soma em complemento acarretar "vai-um" ao resultado, ignore o transporte final) Como exemplo, vamos usar o algoritmo acima na subtrao 1101 - 1100 = 0001 mantm o minuendo inverte o subtraendo soma minuendo e subtraendo soma 1 ignora o "vai-um" ---> ---> ---> ---> ---> 1101 0011 10000 10001 0001

Este algoritmo ser analisado em detalhes na seo Representao de Nmeros Negativos em Complemento . Vamos ver agora a taboada da multiplicao: 0x0=0 0x1=0 1x0=0 1x1=1 No entanto, tambm a multiplicao em computadores feita por um artifcio: para multiplicar um nmero A por n, basta somar A com A, n vezes. Por exemplo, 4 x 3 = 4 + 4 + 4. E a diviso tambm pode ser feita por subtraes sucessivas! O que conclumos? Que qualquer operao aritmtica pode ser realizada em computadores apenas atravs de somas (diretas ou em complemento)! Legal, mas para que serve isso? Por enquanto, ficamos por aqui. No captulo sobre Circuitos Lgicos veremos como essas propriedades sero teis para os engenheiros que projetam os computadores!