P. 1
Conversao de Bases

Conversao de Bases

|Views: 611|Likes:
Publicado porDeborah Alves Horta

More info:

Published by: Deborah Alves Horta on Sep 09, 2011
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

07/09/2012

pdf

text

original

SISTEMAS DE NUMERAÇÃO

Conversões entre Bases
Vamos analisar agora as regras gerais para converter números entre duas bases quaisquer. Conversões entre as bases 2, 8 e 16 As conversões mais simples são as que envolvem bases que são potências entre si. Vamos exemplificar com a conversão entre a base 2 e a base 8. Como 2 3 = 8, separando os bits de um número binário em grupos de tres bits (começando sempre da direita para a esquerda!) e convertendo cada grupo de tres bits para seu equivalente em octal, teremos a representação do número em octal. Por exemplo: 101010012 = 10.101.0012 (separando em grupos de 3, sempre começando da direita para a esquerda) Sabemos que 0102 = 28 ; 1012 = 58 ; 0012 = 18 portanto 101010012 = 2518 Se você ainda não sabe de cor, faça a conversão utilizando a regra geral. Vamos agora exemplificar com uma conversão entre as bases 2 e 16. Como 24 = 16, basta separarmos em grupos de 4 bits (começando sempre da direita para a esquerda!) e converter. Por exemplo: 110101011012 = 110.1010.11012 (separando em grupos de 4 bits, sempre começando da direita para a esquerda). Sabemos que 1102 = 616; 10102 = A16 ; 11012 = D16 ; portanto 110101011012 = 6AD16 Vamos agora exercitar a conversão inversa. Quanto seria 3F5H (lembrar que o H está designando "hexadecimal") em octal? O método mais prático seria converter para binário e em seguida para octal. 3F5H = 11.1111.01012 (convertendo cada dígito hexadecimal em 4 dígitos binários) = = 1.111.110.1012 (agrupando de tres em tres bits) = = 17658 (convertendo cada grupo de tres bits para seu valor equivalente em octal). Conversão de Números em uma base b qualquer para a base 10 Vamos lembrar a expressão geral já apresentada: Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + .... + a-n.b-n A melhor forma de fazer a conversão é usando essa expressão. Tomando como exemplo o número 101101 2, vamos calcular seu valor representado na base dez. Usando a expressão acima, fazemos: 1011012 = 1x25 + 0x24 + 1x23 + 1x22 + 0x21 + 1x20 = 32 + 0 + 8 + 4 + 0 + 1 = 4510 Podemos fazer a conversão de números em qualquer base para a base 10 usando o algoritmo acima. Exemplos: a) Converter 4F5H para a base 10 . Solução: Lembramos que o H significa que a representação é hexadecimal (base 16). Sabemos ainda que F 16=1510. Então: 4x162 + 15x161 + 5x160 = 4x256 + 15x16 + 5 = 1024 + 240 + 5 = 126910 b) Converter 34859 para a base 10. Solução: 3x93 + 4x92 + 8x91 + 5x90 = 3x729 + 4x81 + 8x9 + 5 = 2187 + 324 + 72 + 5 = 258810. c) Converter 7G16 para a base 10. Solução: Uma base b dispõe dos algarismos entre 0 e (b-1). Assim, a base 16 dispõe dos algarismos 0 a F e portanto o símbolo G não pertence à representação hexadecimal. d) Converter 1001,012 para a base 10. Solução: 1x23 + 0x22 + 0x21 + 1x20 + 0x2-1 + 1x2-2 = 8 + 0 + 0 + 1 + 0 + 0,25 = 9,2510

Parte Fracionária Se o número for fracionário. Veja o exemplo da conversão do número 19 10 para a base 2: Experimente fazer a conversão contrária (retornar para a base 10) e ver se o resultado está correto. Os algoritmos de conversão são diferentes. Solução: Uma base b dispõe dos algarismos entre 0 e (b-1). poderíamos continuar efetuando multiplicações indefinidamente até encontrar (se encontrarmos) resultado zero. O algoritmo para a parte fracionária consiste de uma série de multiplicações sucessivas do número fracionário a ser convertido pela base. a parte inteira do resultado da primeira multiplicação será o valor da primeira casa fracionária e a parte fracionária será de novo multiplicada pela base. 1. a conversão foi interrompida quando encontramos o número de algarismos fracionários solicitadas no enunciado. como não encontramos resultado 0 em nenhuma das multiplicações. Assim.: Em ambos os casos. Solução: 3x51 + 4x50 + 3x5-1 = 15 + 4 + 0. com 5 e com 10 algarismos fracionários: Obs. Conversão de Números da Base 10 para uma Base b qualquer A conversão de números da base dez para uma base qualquer emprega algoritmos que serão o inverso dos acima apresentados. No entanto. a base 8 dispõe dos algarismos 0 a 7 e portanto o algarismo 8 não existe nessa base.38 para a base 10.e) Converter 34.35 para a base 10. e assim por diante. 2 e assim por diante até que o resto da última divisão (que resulta em quociente zero) ocupe a posição de mais alta ordem. a conversão se fará em duas etapas distintas: primeiro a parte inteira e depois a parte fracionária. o resultado encontrado .3 não existe na base 8.610 f) Converter 38. No caso de interrupção por chegarmos ao número de dígitos especificado sem encontramos resultado zero.6 = 19. vamos converter 15. Os algoritmos serão melhor entendidos pelo exemplo que por uma descrição formal. o resto de cada divisão ocupará sucessivamente as posições de ordem 0. Vamos a seguir apresentar os algoritmos para a parte inteira e para a parte fracionária: Parte Inteira: O número decimal será dividido sucessivas vezes pela base.6510 para a base 2. Por exemplo. até o resultado dar zero ou até encontrarmos o número de casas decimais desejado. A representação 38.

Fazendo a conversão inversa.0078125 + 0. Conversão de Números entre duas Bases quaisquer Para converter números de uma base b para uma outra base b' quaisquer (isso é.125 + 0.html . melhor será a aproximação.125 = 0. 435 = (4 x 5 + 3)10 = 2310 ==> 23/9 = 2 (resto 5) logo 435 = 2310 = 259 http://wwwusers. que não sejam os casos particulares anteriormente estudados).10100110012 = 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. podemos verificar (sem nenhuma surpresa) que.puc-rio.5 + 0. Exemplo: Converter 435 para ( )9. encontraremos: Com 5 algarismos fracionários: Parte inteira: 11112 = 1510 Parte fracionária: 0.62510 Com 10 algarismos fracionários: Parte inteira: 11112 = 1510 Parte fracionária: 0.0009765625 = 0.5 + 0.015625 + 0.br/rmano/sn2cvb.rdc.é aproximado e essa aproximação será função do número de algarismos que calcularmos. quanto maior número de algarismos forem considerados.6494140625 10 Ou seja.101002 = 1x2-1 + 0x2-2 + 1x2-3 + 0x2-4 + 0x2-5 = 0. o processo prático utilizado é converter da base b dada para a base 10 e depois da base 10 para a base b' pedida.

na prática é muito utilizada a base 8 (octal). 1. 4. isso ocorre porque temos símbolos para representar somente os algarismos de 0 a 9. Tomemos o exemplo da conversão do número base 10 (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. converte o resultado para decimal e apresenta o resultado. F. 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. o ponto a ser entendido aqui é que internamente ela faz tudo em binário. 9.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. no caso da calculadora. em outras palavras: ela converte o que foi digitado para binário. Uma série de divisões inteiras é realizada até que o valor zere. assim é preciso fazer conversões entre estas bases quando se pretende inserir algum valor para ser processado pelo computador. Exemplos Valores numéricos representados em algumas bases 10 (Decimal) 2 (Binário) 0 3 10 15 301 1379 42685 0 11 1010 1111 100101101 10101100011 8 (Octal) 0 3 12 17 455 2543 16 (Hexadecimal) 0 3 A F 12D 563 A6BD 1010011010111101 123275 Repare como na base maior (hexadecimal). O humano está familiarizado com a base 10 (decimal). 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. no dia-a-dia. Esse processo de conversão está. e em muitas situações a digitação de códigos binários é muito complicada/longa para o programador. por exemplo). 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). ou então. préprogramado para ser feito por ela. 745 para a base 4. então existem outros códigos que facilitam a digitação. a conversão pode ser feita simplesmente por reagrupamento dos algarismos. o divisor usado é o valor da base de destino e os restos das divisões inteiras é . D. 3. já os computadores atuais trabalham exclusivamente com a base 2 (binário). 5. ambas derivadas da base 2 (note que estas bases facilitam a digitação somente. E. No entanto quando se está escrevendo um programa é normal a introdução de valores no meio do código. B. 6. 7. é isso que facilita a digitação e memorização dos valores. e a base 16 (hexadecimal). o número de símbolos usados para representar o mesmo valor é bem menor que nas bases menores. 2. faz o cálculo. C. Divisões sucessivas Neste método uma das bases tem que ser a decimal. que funciona para qualquer combinação de bases. A. Repare também que no caso da simbologia da base hexadecimal são usadas algumas letras. para os casos em que a base de origem e de destino pertencem a mesma base logarítmica. 8. Conversões A conversão entre bases pode ser realizada por meio de divisões sucessivas.

a sequência de algarismos da base de destino. entre as bases 16 e 8 ou entre 2 e 16 ou ainda entre as bases 27 e 9. Segue uma tabela básica para estas conversões: Decimal Binário Octal 0 0 1 1 1 2 2 2 Tabela de conversão de bases de origem binária 3 4 5 6 7 8 9 10 11 3 3 4 4 5 5 6 6 7 7 10 8 11 9 12 A 13 B 12 14 C 13 15 D 14 16 E 15 17 F 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hexadecimal 0 . Como a base de origem é decimal podemos usar o método diretamente:      Portanto 74510 = 232214 Outro exemplo 4C18 para a base 7: Como o valor de origem está na base 18 primeiro precisamos convertê-lo para a base 10: 4C18 = 4 * 181 + 12 * 180 = 72 + 12 = 8410 Agora sim aplicamos as divisões:    Assim: 4C18 = 8410 = 1507 Mais um exemplo: converter 6528 para a base 3: 6528 = 6 * 82 + 5 * 81 + 2 * 80 = 384 + 40 + 2 = 42610       Assim: 6528 = 42610 = 1202103 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. 8 e 16 pelos motivos citados anteriormente. Na prática é muito usada a conversão entre as bases 2.

consultando a tabela convertemos o valor de cada bloco para seu equivalente hexadecimal.0002 = 1.org/wiki/Convers%C3%A3o_de_base_num%C3%A9rica .0110 Depois.101. consultando convertemos o valor de cada bloco para seu equivalente octal.1101.110 Depois.08 Assim: 3A816 = 16508 http://pt.1010.010. assim teremos: 1110101102 = 7.10002 = 11101010002 Agora reagrupamos em blocos de 3 dígitos: 11101010002 = 1. Então devemos separar o valor em base 2 em blocos de 3 algarismos: 1110101102 = 111. assim teremos: 1110101102 = 1.816 = 0011.A.5.68 = 7268 Finalmente uma conversão do valor 3A816 para octal: Primeiro convertemos para os blocos binários equivalentes com 4 dígitos: 3A816 = 3.Convertendo 1110101102 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.2. Então o primeiro passo é separar o valor em base 2 em blocos de 4 algarismos: 1110101102 = 1.wikipedia.6.616 = 1D616 Convertendo 1110101102 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.110.D.

Exemplo 2: ** 1100 + 1111 ----= 11011 Explicando: Nesse caso acima (exemplo 2). logicamente. como no exemplo acima. quando o valor for zero. Quando se soma 1 com 1. que. nos deparamos com uma soma de 1 com 1 mais a soma do 1 (*) que veio da soma anterior. o resultado é 2. Esse processo se repete e o elemento que cedeu o "empréstimo" e valia 1 passa a valer 0. ou seja. A única diferença está no momento de somar os termos resultantes da operação: . o resultado é 0 (zero) e passa-se o outro 1 para a "frente". no caso da coluna 0 .10111 ------= 1010111 Explicando: Quando temos 0 menos 1. há apenas dois algarismos: 0 (zero) ou 1 (um).1 = 1. Então. na quarta coluna da direita para a esquerda. Multiplicação de Binários A multiplicação entre binários é similar à realizada com números decimais. Na soma de 0 com 1 o total é 1. o procedimento é o seguinte: * *** 1101110 . conforme assinalado pelo asterisco. Quando temos esse caso (1 + 1 + 1). então o "pedido" passa para o próximo elemento e esse zero recebe o valor de 1. pelo fato de ser um número binário.Soma de Binários 0+0=0 0+1=1 1+0=1 1+1=fica 0 e transporte de 1 (para somar ao digito imediatamente à esquerda) 1+1+1= fica 1 e transporte de 1(para somar ao digito imediatamente à esquerda) Para somar dois números binários. para ser somado com o próximo elemento. ou seja. porque na verdade a operação feita foi 2-1 = 1. Os asteriscos marcam os elementos que "emprestaram" para seus vizinhos. precisamos "pedir emprestado" do elemento vizinho. o resultado é 1 e passa-se o outro 1 para frente Subtração de Binários 0-1=1 e vai 1* para ser subtraido no digito seguinte 1-1=0 1-0=1 0-0=0 Para subtrair dois números binários. Esse empréstimo vem valendo 2 (dois). Perceba. ele não pode "emprestar" para ninguém. o procedimento é o seguinte: Exemplo 1: * 1100 + 111 ----= 10011 Explicando: Os números binários são base 2. mas como 2 em binário é 10.

Nesse exemplo a divisão de 110 por 10 teve como resultado 11. 4 = 100. a terceira coluna a soma dá 4 (com mais um da anterior). Decimal Codificado em Binário Código BCD 8421 O código BCD é um sistema de representação dos dígitos decimais desde 0 até 9 com um código binário de 4 bits. 5 = 101. Esse código BCD usa o sistema de pesos posicionais 8421 do código binário puro. mas na soma de 1 com 1. Este nome o diferencia de outros tipos de códigos binários. depois Divisão de Binários Essa operação também é similar àquela realizada entre números decimais: 110 |__10__ .br/topic/333774-conversao-de-bases-e-aritmetica-computacional/ Códigos Binários A conversão de um número decimal no seu equivalente binário é chamada codificação.100 11—010 .10—00 Deve-se observar somente a regra para subtração entre binários.imasters.com. que adiciona um "1" duas colunas (100). 6 = 110. 7 = 111. Um número decimal é expresso como um código binário ou número binário. Exatamente como binário puro. O sistema numérico binário. http://forum. como apresentado. 111 x 111 --------111 + 111 + 111 --------------= 110001 No caso.1011 x1010 --------0000 + 1011 + 0000 +1011 --------------=1101110 * Perceba que na soma de 0 e 1 o resultado será 1. . 3 =11). conforme assinalado pelo asterisco. pode-se converter os números BCD em seus equivalentes decimais simplesmente somando os pesos das posições de bits onde aparece 1. deve-se somar o número em binário correspondente ( ex. ele será 0 (zero) e passa-se o 1 para a próxima coluna. é conhecido como código binário puro. ao invés do resultado ser 2. Nota que se a soma passar de 2 dígitos.

Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Binário Puro 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 15 1111 0001 0101 Decimal. você pode representar um total de 24 = 16 estados diferentes ou os números decimais equivalentes desde o 0 até o 15.954 O código BCD simplifica a interface Homem-máquina. Um espaço é deixado entre cada grupo de 4 bits para evitar confusão do formato BCD com o código binário puro. Usamse mais bits para representar um dado número decimal em BCD que em notação binária pura. pois. mas aumenta-se o entendimento entre o equipamento digital e o operador humano. Cada dígito decimal é representado pelo seu código BCD 8421 equivalente. O código BCD é ineficiente.0111 0110 0100‖ em BCD. Operações aritméticas com números BCD também consomem mais tempo e são mais complexas que aquelas com números binários puros. a fração decimal 0. Uma vantagem do código BCD é que as dez combinações do código BCD são fáceis de lembrar. com um espaço entre cada grupo. usam-se apenas 7 bits para representar o número 83. cada dígito decimal é representado pelo seu código equivalente 8421. Em BCD. . Para representar um número decimal em notação BCD substitui-se cada dígito decimal pelo código de 4 bits apropriados. mas é menos eficiente que o código binário puro. alguma eficiência é perdida. Por exemplo. há usualmente alguma circuitaria digital associada. Os números binários de 4 bits representando os números decimais desde 10 até 15 são inválidos no sistema BCD. o inteiro decimal 834 em BCD é 1000 0011 0100. Por exemplo. usam-se 8 bits. A circuitaria extra associada com o código BCD custa mais. que existem apenas dez códigos válidos. aumenta a complexidade do equipamento e consome mais energia. 0110 0010 1000. seis destes estados (10-15) são desperdiçados. entretanto. os números BCD tornam-se tão fáceis e automáticos como números decimais. Por exemplo. Quando o sistema numérico BCD é usado. Com quatro bits de informação binária. o número decimal 83 é escrito como 1000 0011.1001 0101 0100 = 628. Este método de representação também se aplica as frações decimais. converter o número BCD no seu equivalente decimal. No sistema BCD. Novamente. para cada bit numa palavra de dado. Binário Puro e BCD Observe. Conforme se começa a trabalhar com números binários regularmente. por simples inspeção da representação BCD de um número decimal pode-se efetuar a conversão quase tão rápido como se já estivesse na forma decimal. Em código binário puro.764 é ―0. Como exemplo. Por esta razão.

a conversão de binário para BCD não é direta.101 é equivalente ao número BCD 1001 0110.wikipedia. Uma conversão intermediária deve ser realizada primeiro. cada parte é convertida como visto anteriormente. ou ASCII estendido –.00 = 0 0 <. Primeiro o número binário é convertido para decimal.250 x 2 = 0. as operações anteriores são invertidas.0010 0101 Para converter de BCD para binário. Vários códigos binários são chamados códigos alfanuméricos pois eles são usados para representar caracteres assim como números. ASCII. O resultado decimal é convertido para binário Inteiro Resto Posição Fração Inteiro Posição 96 ÷ 2 = 48 0 -> LSB 0. e em comunicação de dados por rádio e telefone. Um novo nome para este código que está se tornando popular é "American National Standard Code for Information Interchange" (ANSCII).Conversão Binário para BCD A conversão de decimal para BCD é simples e direta. É um código binário que usado em transferência de dados entre microprocessadores e seus dispositivos periféricos. o número BCD 1001 0110.500 x 2 = 1.62510 = 9610 + 0.0110 0010 0101 é convertido no seu equivalente binário. mais alguns outros caracteres especiais usados para pontuação e controle de dados! http://pt.25 1 <. 1011.LSB 12 ÷ 2 = 06 0 06 ÷ 2 = 03 0 03 ÷ 2 = 01 1 01 ÷ 2 = 00 1 <.MSB 9610 = 11000002 0. 1.101 Como o número decimal intermediário contém uma parte inteira e uma parte decimal. Por exemplo. Entretanto.0110 0010 0101 = 96. A soma binária (inteiro mais fração) 1100000.101 = 1100000. letras maiúsculas e minúsculas do alfabeto.625 2. Código ASCII O "American Standard Code for Information Interchange" comumente referido como ASCII – também chamado ASCII completo.25(10) Então o resultado decimal é convertido para BCD.101 96.MSB 48 ÷ 2 = 24 0 0. Entretanto.25 = 11. 1001 0110.62510= 1100000 + 0.25 = 0.01 = (1x2^3)+(0x2^2)+(1x2^1)+(1x2^0)+(0x2^-1)+(1x2^-2) =8+0+2+1+0+0. é uma forma especial de código binário que é largamente utilizado em microprocessadores e equipamentos de comunicação de dados.01 é convertido no seu equivalente BCD.0110 0010 0101.org/wiki/Sistema_bin%C3%A1rio_%28matem%C3%A1tica%29 .25(10) = 0001 0001. utilizaremos o termo consagrado. Estes caracteres compreendem números decimais de 0 até 9. O número BCD é convertido para decimal.50 0 24 ÷ 2 = 12 0 0. Por exemplo. o número 1011. 11.62510 = 0.625 x 2 = 1.50 = 0. Com 7 bits pode-se representar um total de 27 = 128 caracteres diferentes.

letras maiúsculas e minúsculas do alfabeto.org/wiki/Sistema_bin%C3%A1rio_%28matem%C3%A1tica%29 .de 0 até 9.wikipedia. mais alguns outros caracteres especiais usados para pontuação e controle de dados! http://pt.

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->