Conversão Entre Bases...

13
Início Cursos Blog A Empresa Contato Curso de Lógica da Programação na Prática. Conversão Entre Bases Numéricas. Na lição anterior tivemos uma introdução aos números decimais, binários, hexadecimais e octais. Nesta lição vamos aprender algumas técnicas para transformar números de bases diferentes entre si. Conversão de Decimal para Binário Para encontrar o número binário correspondente a um número decimal, são realizadas sucessivas divisões do número decimal por 2. Em seguida, o resto da divisão de cada operação é coletado de forma invertida, da última para a primeira operação de divisão, como na figura, onde foi obtido o número binário correspondente ao número decimal 25:

Transcript of Conversão Entre Bases...

Page 1: Conversão Entre Bases Numéricas.professor.leonardomeirelles.com/wp/wp-content/uploads/2017/04/con... · Conversão de Decimal em Octal Assim como nas conversões anteriores, ...

Início   Cursos   Blog   A Empresa   Contato

 

Curso de Lógica da Programação na

Prática.

Conversão EntreBases Numéricas.Na lição anterior tivemos uma

introdução aos números decimais,

binários, hexadecimais e octais.

Nesta lição vamos aprender algumastécnicas para transformar números debases diferentes entre si.

Conversão de Decimal paraBinário

Para encontrar o número bináriocorrespondente a um número decimal,são realizadas sucessivas divisões donúmero decimal por 2.

Em seguida, o resto da divisão de cadaoperação é coletado de forma invertida,da última para a primeira operação dedivisão, como na figura, onde foi obtido onúmero binário correspondente aonúmero decimal 25:

Page 2: Conversão Entre Bases Numéricas.professor.leonardomeirelles.com/wp/wp-content/uploads/2017/04/con... · Conversão de Decimal em Octal Assim como nas conversões anteriores, ...

Na figura acima vemos que o númerodecimal foi dividido sucessivamente por 2e os resultados foram coletados daúltima para a primeira divisão, formandoo número binário.

Conversão de Binário paraDecimal

Como vimos na lição anterior, paradescobrir o número decimalcorrespondente a um número binário,basta calcular a soma de cada um dosdígitos do número binário multiplicadopor 2 (que é a sua base) elevado àposição colunar do número, que, dadireita para a esquerda começa em 0.

Vejamos uma conversão do númerobinário que obtivemos na conversãoacima:

Page 3: Conversão Entre Bases Numéricas.professor.leonardomeirelles.com/wp/wp-content/uploads/2017/04/con... · Conversão de Decimal em Octal Assim como nas conversões anteriores, ...

Conversão de Decimal paraHexadecimal

A conversão de números decimais parahexadecimais é idêntica à conversão dedecimal para binário, exceto que adivisão deve ser realizada por 16, que éa base dos hexadecimais.

Quando tiver dúvida sobre o valor emhexadecimal de algum resto, verifique natabela da lição anterior.

Conversão de Hexadecimal emDecimal

A conversão de números hexadecimaisem decimais é realizada através da somados dígitos hexadecimais multiplicadospela base 16 elevada à posição colunarcontando da direita para a esquerda,começando em 0, de forma semelhante àconversão de binários em decimais:

Note que os caracteres que definem os

Page 4: Conversão Entre Bases Numéricas.professor.leonardomeirelles.com/wp/wp-content/uploads/2017/04/con... · Conversão de Decimal em Octal Assim como nas conversões anteriores, ...

dígitos hexadecimais A, B e C foramsubstituídos pelos valores equivalentesem decimais 10, 11 e 12 de acordo coma tabela da lição anterior para arealização do cálculo.

Conversão de Decimal em Octal

Assim como nas conversões anteriores,divide­se o decimal pela base para a qualse quer obter o número, no caso, 8:

Vimos que foram coletados os restos decada divisão da última para a primeirapara formar o número octal.

Conversão de Octal em Decimal

A conversão de números octais emdecimais é obtida através da soma dosdígitos do número octal multiplicadospela base 8 elevada à posição colunar dodígito, começando em 0 da direita para aesquerda:

Page 5: Conversão Entre Bases Numéricas.professor.leonardomeirelles.com/wp/wp-content/uploads/2017/04/con... · Conversão de Decimal em Octal Assim como nas conversões anteriores, ...

Conversão de Binário emHexadecimal

Para converter um número binário emhexadecimal, separa­se o número binárioem grupos de 4 bits, da direita para aesquerda. Em seguida, transforma­secada grupo de 4 bits em hexadecimal. Aofinal, simplesmente une­se os resultadosem um só:

Caso o número de dígitos do númerobinário não seja múltiplo de 4, completa­se os dígitos à esquerda com zeros (0):

Conversão de Binário em Octal

Page 6: Conversão Entre Bases Numéricas.professor.leonardomeirelles.com/wp/wp-content/uploads/2017/04/con... · Conversão de Decimal em Octal Assim como nas conversões anteriores, ...

Para converter números binários emoctais, separa­se os dígitos do númerobinário em grupos de 3 bits da direitapara a esquerda. Em seguida transforma­se cada grupo individual de 3 bits emoctal. Ao final, une­se os resultados:

Caso o número de dígitos do númerobinário não seja múltiplo de 3, completa­se os dígitos à esquerda com zeros (0):

Conversão de Hexadecimal emBinário

Para converter números hexadecimaisem binários, decompõem­se o númerohexadecimal diretamente em binários de

Page 7: Conversão Entre Bases Numéricas.professor.leonardomeirelles.com/wp/wp-content/uploads/2017/04/con... · Conversão de Decimal em Octal Assim como nas conversões anteriores, ...

4 dígitos. Os zeros mais à esquerda doresultado binário podem ser omitidos:

Conversão de Octal em Binário

Para converter números octais embinários, decompõem­se o número octaldiretamente em binários de 3 dígitos. Oszeros mais à esquerda do resultadobinário podem ser omitidos:

Conversão de Octal emHexadecimal

Para converter um número octal emhexadecimal, transforma­se primeiro ooctal em binário e em seguida o binárioem hexadecimal:

Page 8: Conversão Entre Bases Numéricas.professor.leonardomeirelles.com/wp/wp-content/uploads/2017/04/con... · Conversão de Decimal em Octal Assim como nas conversões anteriores, ...

Conversão de Hexadecimal emOctal

Para converter um número hexadecimalem octal, transforma­se primeiro ohexadecimal em binário e em seguida obinário em octal:

Conversões entre Bases emRuby

Na lição anterior vimos que temos,basicamente:

Números Decimais, de base 10.

Números Binários, de base 2.

Números Hexadecimais, de base 16.

Números Octais, de base 8.

Em Ruby há uma maneira bem simplesde converter números entre basesdiferentes.

Veja este exemplo no irb:

Page 9: Conversão Entre Bases Numéricas.professor.leonardomeirelles.com/wp/wp-content/uploads/2017/04/con... · Conversão de Decimal em Octal Assim como nas conversões anteriores, ...

Vejamos como é feita essa conversão:

Em primeiro lugar, o número emquestão está no formato String(observe as aspas). Em seguida, omesmo é convertido em inteirocom o .to_i, informando a baseentre parênteses para a qual omesmo deve ser convertido, nocaso, base 10, para que sejaconvertido em inteiro decimal.

Em seguida o número é convertidoem String novamente, informandoa base para a qual o número deveser interpretado, no caso, base 2,para que seja convertido embinário.

Na segunda operação, o processo

Page 10: Conversão Entre Bases Numéricas.professor.leonardomeirelles.com/wp/wp-content/uploads/2017/04/con... · Conversão de Decimal em Octal Assim como nas conversões anteriores, ...

inverso é realizado. O númerobinário que está no formato Stringé convertido em inteiro com o.to_i e é informada a base 2 parao mesmo, que logo em seguida éconvertido novamente em String,dessa vez de base 10.

E, é claro que Ruby também facilita aconversão entre outras bases. Nas linhassubsequentes do nosso teste sãoconvetidos diversos exemplos queutilizamos em nossa lição entre diversasbases.

Conversão entre bases em Java

Em Java, também é fácil converternúmeros entre bases diferentes. Vejaeste programa simples:

Page 11: Conversão Entre Bases Numéricas.professor.leonardomeirelles.com/wp/wp-content/uploads/2017/04/con... · Conversão de Decimal em Octal Assim como nas conversões anteriores, ...

/**********************************************************

 * Programa: programa em Java que demonstra a

 *           conversão de números entre bases diferentes

 *

 * Compilação: javac ConversaoEntreBases.java

 * Execução: java ConversaoEntreBases

 *

 * % java ConversaoEntreBases

 * % ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐

 * % Decimal 211 para Binário: 11010011

 * % Decimal 211 para Octal: 323

 * % Decimal 211 para Hexadecimal: d3

 * % ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐

 * % Binário: 11101110 para Decimal: 238

 * % Binário: 11101110 para Octal: 356

 * % Binário: 11101110 para Hexadecimal: ee

 * % ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐

 * % Octal: 77 para Decimal: 63

 * % Octal: 77 para Binário: 111111

 * % Octal: 77 para Hexadecimal: 3f

 * % ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐

Testando o programa: