Aula 5: Conversões Entre Bases Numéricas

Documentos relacionados
Fundamentos de Arquiteturas de Computadores

Organização de Computadores I

Aula 4: Bases Numéricas

Aritmética em Bases Não Decimais

Aula 8: Complemento a Um e Complemento a Dois

1 bases numéricas. capítulo

SISTEMAS DE NUMERAÇÃO CONVERSÕES ENTRE BASES. Prof. André Rabelo

Aula 6: Aritmética em Bases Não Decimais

Aula 4: Bases Numéricas

Aula 7: Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Fundamentos de TI. Aula08_Sistemas Numéricos.doc 1

Binário Decimal

Aula 9: Estouro e Representação em Ponto Flutuante

Arquitetura de computadores BASE NUMÉRICAS

Arquitetura de Computadores

Aula 9: Estouro e Representação em Ponto Flutuante

Alex Maycon da Silva

Complemento a Um e Complemento a Dois

SISTEMAS DE NUMERAÇÃO. Introdução à Ciência da Computação ICC0001

Capítulo 04 : Sistemas Numéricos

Multiplicação Divisão

Base: número de símbolos empregados no sistema numérico.

Números são números, letras são números e sinais de pontuação, símbolos e até mesmo as instruções do próprio computador são números.

Arquitetura de Computadores Sistema de Numeração. Apresentado por Prof. Fred Sauer Mat. Elaborado por Prof. Ricardo Quintão

Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Conversões numéricas de base. Organização de Computadores

SEBENTA de Sistemas de Numeração

Representação decimal dos números racionais

Aula 2 - Sistemas de Numeração

Sistemas Numéricos - Aritmética. Conversão de Bases. Prof. Celso Candido ADS / REDES / ENGENHARIA

Aula 2 - Sistemas de Numeração

2 Representação numérica

Sistemas de Numeração

Técnico em Eletrônica Módulo I Eletrônica Digital (ED) - Prof. Samuel M. B. Cavalcante

Sistemas de Numeração. Professor Msc. Rodolfo Lauro Weinert Joinville, 26 de fevereiro de 2018

Circuitos Lógicos Aula 5

Conversão de Bases. Introdução à Organização de Computadores 5ª Edição/2007 Página 54. Sistemas Numéricos - Aritmética. Prof.

1 x 10 3 = x 10 2 = x 10 1 = x 10 0 = 8 + Total

Organização de Computadores I

X. B Y Base do sistema de numeração Dígito do número em questão

ESTRUTURAS DE REPETIÇÃO - PARTE 2

Estouro e Representação em Ponto Flutuante

A divisão também é usada para se saber quantas vezes uma quantidade cabe em outra.

Introdução à Informática

Percentual de acertos NOME Nᴼ 09/06/2017 Durante a semana 20/06/2017 TURMA: Data para tirar dúvidas em sala de aula

Sistemas Digitais. Prof. Valbério Gonzaga

Definição: Uma função de uma variável x é uma função polinomial complexa se pudermos escrevê-la na forma n

Capítulo 2. Representação de dados em sistemas computacionais

Múltiplos, Divisores e Primos II - Aula 07

Sistemas de Numeração. Sistemas Decimal, Binário e Hexadecimal.

Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina - Campus São José. Prof. Glauco Cardozo.

Representação decimal dos números racionais

SISTEMA DE NUMERAÇÃO. Introdução a Informática. Vinícius Pádua

PCS 3115 (PCS2215) Sistemas Digitais I. Módulo 02 Sistemas de Numeração. Prof. Dr. Marcos A. Simplicio Jr. versão: 3.0 (Jan/2016) Conteúdo

Introdução à Organização de Computadores. Conversão de Bases

2. Conversões de base

ARITMÉTICA BINÁRIA. São duas as operações executadas pelo computador:

1) Conversão de Decimal para Binário

Sistema binário (0, 1) Sistema octal (0, 1, 2, 3, 4, 5, 6, 7) Sistema hexadecimal (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)

Circuitos Lógicos. Prof. Odilson Tadeu Valle

ADIÇÃO E SUBTRAÇÃO DE FRAÇÕES 1A

Dessa forma pode-se transformar qualquer número em qualquer base para a base 10.

Curso de Aritmética Capítulo 1: Conjuntos Numéricos, Operações Básicas e Fatorações

MAT Laboratório de Matemática I - Diurno Profa. Martha Salerno Monteiro

Representação Digital de Informação

Lógica Matemática Elementos de Lógica Digital. Sistema de numeração 09/08/2016 1

ARQUITETURA DE COMPUTADORES

Métodos Numéricos. Turma CI-202-D. Josiney de Souza.

ELETRÔNICA DIGITAL SISTEMAS NUMÉRICOS

SISTEMA DECIMAL. No sistema decimal o símbolo 0 (zero) posicionado à direita implica em multiplicar a grandeza pela base, ou seja, por 10 (dez).

Ponto Flutuante IEEE 754

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Introdução à Computação Prof. André Luís Belini

Formação dos números: Aplicação da fórmula geral para o numero

Unidade III ORGANIZAÇÃO DE COMPUTADORES. O que quer dizer 14?

SISTEMAS DE NUMERAÇÃO

NÚCLEO EDUCAFRO KALUNGA DISCIPLINA DE MATEMÁTICA PROFESSOR DEREK PAIVA

MATEMÁTICA 1 ARITMÉTICA Professor Matheus Secco

FUNDAMENTOS DA INFORMÁTICA. Sistemas de Numeração

Matemática OPERAÇÕES BÁSICAS. Professor Dudan

MATEMÁTICA FINANCEIRA

Eletrônica Digital. Instituto Federal de Santa Catarina Campus São José. Área de Telecomunicações. Sistema de Numeração

ARQUITETURA DE COMPUTADORES

CIRCUITOS DIGITAIS I

Introdução à Computação

Baseado nos slides de Anna Tostes SISTEMA NUMÉRICO

Matemática Básica. Capítulo Conjuntos

Representação Digital da Informação I

Sistemas Digitais. Circuitos Aritméticos. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA)

Prof. a : Patrícia Caldana

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Sistemas de numeração

Universidade Federal do Espírito Santo - UFES

REVISÃO DOS CONTEÚDOS

Um sistema de numeração posicional utiliza um conjunto de símbolos. O valor que cada

ELETRÔNICA DIGITAL Aula 1- Sistemas de Numeração. Prof.ª Msc. Patricia Pedroso Estevam Ribeiro

MATEMÁTICA. Aritmética e Problemas. Sistemas de Numeração e Operações Fundamentais Parte 1. Prof. Renato Oliveira

Divisibilidade Múltiplos de um número Critérios de divisibilidade 5367

MATEMÁTICA I. Ana Paula Figueiredo

AULA DEMONSTRATIVA RACIOCÍNIO LÓGICO. Professor Guilherme Neves. Aula 00 Aula Demonstrativa

Transcrição:

Aula 5: Conversões Entre Bases Numéricas Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 1 / 43

Conversão de Base k para a Base 10 Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 2 / 43

Relembrando a Definição Na última aula vimos que uma base k qualquer possui k algarismos Símbolos usados para escrever números Cada um associado a um valor único de 0 a k 1 Vimos também que a cada posição de um algarismo em um número corresponde um multiplicador Sempre da forma k i Onde i é a posição do algarismo no número Contada a partir do 0 e da direita para a esquerda No caso de vírgula: Posição zero é imediatamente a esquerda da vírgula À direita, encontram-se as posições -1, -2, Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 3 / 43

Relembrando a Definição (II) Seja um número qualquer a escrito em uma base k: a (k) = α p α 1 α 0,α 1 α 2 α q O valor deste número na base 10 é dado por: a (10) = k p val10(α p ) + + k 1 val10(α 1 ) + k 0 val10(α 0 ) + k 1 val10(α 1 ) + k 2 val10(α 2 ) + + k q val10(α q ) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 4 / 43

Definição como Método de Conversão A própria definição de uma base numérica qualquer pode ser usada para realizar a conversão de base Para isso, basta conhecermos: A base k A função val10(), que converte um algarismo da base k no seu valor decimal Aplica-se a função a cada algarismo Multiplica-se pela potência de k adequada Soma-se o valor obtido para todos os algarismos Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 5 / 43

Pseudo-Código Dados: Número na base k, valor de k Saída: Número na base 10 p número de algarismos à esquerda da vírgula; p p - 1; n número total de algarismos; valordecimal 0; enquanto n > 0 faça algarismo algarismo da posição p; valordecimal valordecimal + k p val10(algarismo); n n - 1; p p - 1; fim retorna valordecimal; Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 6 / 43

Definição como Método de Conversão: Exemplos Converter a = 1101001 (2) para a base 10: a = 1 2 6 + 1 2 5 + 0 2 4 + 1 2 3 + 0 2 2 + 0 2 1 + 1 2 0 a = 64 + 32 + 8 + 1 a = 105 (10) Converter a = 456 (8) para a base 10: a = 4 8 2 + 5 8 1 + 6 8 0 a = 256 + 40 + 6 a = 302 (10) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 7 / 43

Definição como Método de Conversão: Exemplos (II) Converter a = 2F 5 (16) para a base 10: a = 2 16 2 + 15 16 1 + 5 16 0 a = 512 + 240 + 5 a = 757 (10) Converter a = 1011,101 (2) para a base 10: a = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 + 1 2 1 + 0 2 2 + 1 2 3 a = 8 + 2 + 1 + 0,5 + 0,125 a = 11,625 (10) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 8 / 43

Variação para Valores Não-Inteiros O método explicado anteriormente funciona perfeitamente para números não-inteiros Mas podemos utilizar também uma pequena variação Fazemos a conversão do valor, ignorando a vírgula (ie, como se fosse um número inteiro) Após a conversão, dividimos o valor encontrado na base 10 por k q q é o número de algarismos depois da vírgula Exemplo: converter a = 1011,101 (2) para a base 10 Começamos convertendo o valor a = 1011101 (2), ignorando a vírgula: a = 1 2 6 + 0 2 5 + 1 2 4 + 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 a = 64 + 16 + 8 + 4 + 1 a = 93 (10) Finalmente, dividimos 93(10) por 2 3, chegando ao resultado: 11,625 (10) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 9 / 43

Variação para Valores Não-Inteiros (II) Porque este método funciona? Quando ignoramos a vírgula, estamos implicitamente multiplicando o número original por k q Exemplos na base 10: 129,74 100 = 12974 4,1 10 = 41 Uma vez convertido o número sem vírgula, fazemos a divisão explícita para desfazer a multiplicação implícita Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 10 / 43

Conversão de Base k para Base 10: Exercício Realize as seguintes conversões de base: Converter 110110 (2) para a base 10 Converter 115(8) para a base 10 Converter 77F (16) para a base 10 Converter ABAC0(16) para a base 10 Converter 11,01 (2) para a base 10 Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 11 / 43

Conversão de Base 10 para a Base k Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 12 / 43

Começando pelos Números Inteiros: Ideia Básica Vamos voltar à definição de um número escrito em uma base k qualquer: a (k) = α p α 1 α 0 Sabemos que o valor deste número na base 10 é dado por: a (10) = k p val10(α p ) + + k 1 val10(α 1 ) + k 0 val10(α 0 ) Note que para qualquer base k, k 0 = 1 Logo: a (10) = k p val10(α p ) + + k 1 val10(α 1 ) + val10(α 0 ) Note que todos os termos da expressão são divisíveis por k, exceto pelo último Lembre que 0 val10(α 0 ) k 1 Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 13 / 43

Começando pelos Números Inteiros: Ideia Básica (II) Isso significa que se dividirmos o número a por k, o resto da divisão será val10(α 0 ) Valor correspondente ao primeiro algarismo (da direita para a esquerda) na representação em base k Por outro lado, o resultado da divisão (inteira) será: a (10) = k(p 1) val10(α p ) + + k 1 val10(α 2 ) + val10(α 1 ) Novamente, todos os termos são divisíveis por k, exceto pelo último Se fizermos uma nova divisão por k, o resto será val10(α1 ) ie, o valor do segundo algarismo de a (k) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 14 / 43

Começando pelos Números Inteiros: Resumindo Partimos do número a ser convertido, a Calculamos a divisão inteira de a por k O resto da divisão é o valor do algarismo mais à direita Guardamos resultado da divisão em a Dividindo a por k, obtemos o segundo algarismo e um novo valor, a Continuando assim, obtemos um a um os algarismos (na base k) do número a Da direita para a esquerda Pergunta: quando devemos parar? Em outras palavras, quando sabemos que chegamos ao último algarismo? Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 15 / 43

Começando pelos Números Inteiros: Resumindo (II) Para responder, vamos pensar no momento em que acabamos de obter o penúltimo algarismo Neste ponto, depois de sucessivas divisões por k, temos um valor a dado por: a = val10(α p ) Se realizarmos uma nova divisão inteira por k, obtemos: Como resto, val10(αp ) (valor do último algarismo) Como resultado, 0 (porque val10(αp ) < k) Note que o valor 0 só resulta da obtenção do último algarismo Conclusão: processo para quando a divisão inteira resulta em 0 Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 16 / 43

Começando pelos Números Inteiros: Pseudo-Código Dados: Número a escrito na base 10, valor de k Saída: Número a escrito na base k saída ; repita valoralgarismo resto da divisão de a por k; a quociente da divisão inteira de a por k; saída símbolo do algarismo correspondente a valoralgarismo concatenado com saída; até a = 0; retorna saída; Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 17 / 43

Começando pelos Números Inteiros: Exemplos Converter a = 107 (10) para a base 2: 107 2 1 53 2 1 26 2 0 13 2 1 6 2 0 3 2 1 1 2 1 0 Converter a = 48 (10) para a base 2: 48 2 0 24 2 0 12 2 0 6 2 0 3 2 1 1 2 1 0 Resultado: 1101011 (2) Resultado: 101011 (2) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 18 / 43

Começando pelos Números Inteiros: Exemplos (II) Converter a = 666 (10) para a base 8: 666 8 2 83 8 3 10 8 2 1 8 1 0 Converter a = 1084 (10) para a base 16: 1084 12 16 67 16 3 4 16 4 0 Resultado:43C (16) Resultado: 1232 (8) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 19 / 43

Conversão de Base 10 para Base k: Exercício Realize as seguintes conversões de base: Converter 78(10) para a base 2 Converter 755 (10) para a base 2 Converter 61680(10) para a base 16 Converter 438 (10) para a base 8 Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 20 / 43

Conversão de Números Não-Inteiros: Ideia Básica A conversão de números não-inteiros é um pouco mais trabalhosa O método que usaremos divide o trabalho em duas partes Ele é baseado no fato de que um número não-inteiro pode ser reescrito como a soma de dois pedaços : A parte inteira A parte fracionária Exemplos: 14,22 = 14 + 0,22 1,25 = 1 + 0,25 Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 21 / 43

Conversão de Números Não-Inteiros: Ideia Básica (II) Observe que: 1 Esta divisão pode ser feita em qualquer base eg, 11001,01 (2) = 11001 (2) + 0,01 (2) 2 Um número que possui parte inteira nula em uma base, também terá a parte inteira nula em qualquer outra base eg, 0,25 (10) = 0,01 (2) 3 Um número que possui parte fracionária nula em uma base, também terá a parte fracionária nula em qualquer outra base eg, 25 (10) = 11001 (2) 4 Em qualquer base, somar um número que tem apenas parte inteira com outro com apenas parte fracionária é equivalente a concatenar estas respectivas partes eg, 11001 (2) + 0,01 (2) = 11001,01 (2) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 22 / 43

Conversão de Números Não-Inteiros: Ideia Básica (III) O método para converter os números não-inteiros, portanto, consiste em dividir o problema em quatro etapas: Separar o número original na base 10 em dois: somente a parte inteira e somente a parte fracionária Converter a parte inteira usando o método estudado anteriormente Converter a parte fracionária (será visto a seguir) Concatenar as duas partes convertidas, separando-as por vírgula De todos estes passos, o único que não conhecemos é o terceiro Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 23 / 43

Conversão da Parte Fracionária: Teoria Considere um número fracionário puro a (10) escrito na base 10 Parte inteira é nula Sabemos que ele também é fracionário puro em qualquer outra base, em particular na base k: a (k) = 0,α 1 α 2 α q Também sabemos que podemos escrever este número alternativamente na base 10 como: a (10) = k 1 val10(α 1 ) + k 2 val10(α 2 ) + + k q val10(α q ) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 24 / 43

Conversão da Parte Fracionária: Teoria (II) Se multiplicarmos ambos os lados por k, obtemos: k a (10) = val10(α 1 ) + k 1 val10(α 2 ) + + k q+1 val10(α q ) Repare que o valor resultante possui agora uma parte inteira: val10(α 1 ) Os demais termos somam menos de 1 e compõem a parte fracionária Assim, isolando a parte inteira, obtemos o primeiro algarismo após a vírgula do número original Podemos pegar a parte fracionária e repetir o processo obtendo os demais algarismos Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 25 / 43

Conversão da Parte Fracionária: Resumindo Partimos do número a ser convertido, a Múltiplicamos a pela base k A parte intera corresponde ao valor do primeiro algarismo depois da vírgula Guardamos a parte inteira como um novo valor a Multiplicando a por k, obtemos o segundo algarismo e um novo valor, a Continuando assim, obtemos um a um os algarismos (na base k) do número a Da esquerda para a direita depois da vírgula Pergunta: quando devemos parar? Em outras palavras, quando sabemos que chegamos ao último algarismo? Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 26 / 43

Conversão da Parte Fracionária: Resumindo (II) Se a parte fracionária se torna 0, continuar o algoritmo só adicionará algarismos nulos ao final do número Logo, podemos usar esta condição como critério de parada Mais um detalhe: Um número fracionário com representação finita na base 10 não necessariamente será finito também na base k Se, em algum ponto, a parte fracionária se repetir, representação é infinita Algarismos gerados entre as repetições, se repetem indefinidamente Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 27 / 43

Conversão da Parte Fracionária: Pseudo-Código Dados: Número a escrito na base 10 (fracionário puro), valor de k Saída: Número a escrito na base k saída 0, ; repita valoralgarismo parte inteira da multiplicação de a por k; a parte fracionária da multiplicação de a por k; saída saída concatenada com símbolo do algarismo correspondente a valoralgarismo; até a = 0; retorna saída; Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 28 / 43

Conversão da Parte Fracionária: Exemplos Converter a = 0,6875 (10) para a base 2: Converter a = 0,1 (10) para a base 2: Converter a = 0,78125 (10) para a base 16: 0,6875 = 1,375 X 2 0,375 = 0,750 X 2 0,750 = 1,500 X 2 0,500 = 1,000 X 2 Resultado: 0,1011 (2) 0,1 = 0,200 X 2 0,2 = 0,400 X 2 0,4 = 0,800 X 2 0,8 = 1,600 0,6 = 1,200 X 2 X 2 0,78125 = 12,500 0,5 = 1,000 Resultado: 0,C1 (16) X 16 X 16 Resultado: 0,00011 (2) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 29 / 43

Juntando Tudo: Exemplo Converter 13,4 (10) para a base 2: Parte Inteira Parte Fracionária 13 2 1 6 2 0 3 2 1 1 2 1 0 0,4 0,800 0,8 1,600 0,6 1,200 0,2 0,400 X 2 X 2 X 2 X 2 Resultado: 1101 (2) Resultado: 0,0110 (2) Resultado Final: 1101,0110 (2) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 30 / 43

Conversão de Números Não-Inteiros: Exercício Realize as seguintes conversões de base: Converter 14,5(10) para a base 2 Converter 76,25 (10) para a base 2 Converter 171,515625(10) para a base 16 Converter 46,45 (10) para a base 8 Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 31 / 43

Conversões entre Bases Diferentes da 10 Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 32 / 43

Conversões entre Bases Diferentes da 10: Motivação Até aqui, todas as conversões vistas passaram pela base 10 Da base 10 para outras De outras para a base 10 Muitas vezes, queremos fazer conversões entre bases diferentes da 10 Exemplos: Base 2 para base 16 Base 16 para base 2 Base 8 para base 16 Como fazer estas conversões? Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 33 / 43

Conversões entre Bases Diferentes da 10: Métodos Basicamente, há três possibilidades: Utilizar a base 10 como intermediária Utilizar métodos já estudados, mas aritmética na base de origem ou de destino Utilizar mapeamento entre algarismos de uma base e grupos de algarismos na outra Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 34 / 43

Conversões entre Bases Diferentes da 10: Primeiro Método Utilizar a base 10 como intermediária Converte-se o número da base original para a base 10 Converte-se o resultado da base 10 para a base de destino Exemplo: converter 1101101 (2) para a base 16 1101101(2) = 64 + 32 + 8 + 4 + 1 = 109 (10) 109 (10) = 6D (16) Logo, 1101101(2) = 6D (16) Método simples, mas trabalhoso Duas conversões, ao invés de uma Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 35 / 43

Conversões entre Bases Diferentes da 10: Segundo Método Utilizar métodos já estudados, mas aritmética na base de origem ou de destino Nos métodos de conversão vistos até aqui, a base 10 pode ser substituída por qualquer base Exemplo: converter C (16) para a base 2 D (16) dividido por 2 dá 6 e sobra 1 6(16) dividido por 2 dá 3 e sobra 0 3 (16) dividido por 2 dá 1 e sobra 1 1(16) dividido por 2 dá 0 e sobra 1 Logo, D (16) = 1101 (2) Só uma conversão é necessária O problema é realizar as operações aritméticas nestas outras bases Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 36 / 43

Conversões entre Bases Diferentes da 10: Terceiro Método Utilizar mapeamento entre algarismos de uma base e grupos de algarismos na outra Algumas bases são relacionadas É possível fazer um mapeamento direto de um algarismo em uma base de origem para um grupo de algarismos na base de destino Ou vice-versa Exemplo: equivalências entre as bases 2 e 16 Base 2 Base 16 Base 2 Base 16 Base 2 Base 16 Base 2 Base 16 0000 0 0100 4 1000 8 1100 C 0001 1 0101 5 1001 9 1101 D 0010 2 0110 6 1010 A 1110 E 0011 3 0111 7 1011 B 1111 F Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 37 / 43

Conversões entre Bases Diferentes da 10: Terceiro Método (II) Dadas estas equivalências, podemos facilmente fazer conversões entre estas bases Da base 16 para a base 2: cada algarismo hexadecimal é substituído pelo grupo de 4 bits correspondente Da base 2 para a base 16: cada grupo de 4 bits é substituído pelo algarismo hexadecimal correspondente Da direita para a esquerda Completar com zeros à esquerda, se necessário Exemplo 1: converter 1E5C (16) para a base 2 1(16) = 0001 (2), E (16) = 1110 (2), 5 (16) = 0101 (2), C (16) = 1100 (2) Juntando: 1E5C (16) = 0001111001011100 (2) Exemplo 2: converter 1101100101011 (2) para a base 16 Da direita para a esquerda, há 4 blocos de 4 bits 1011(2), 0010 (2), 1011 (2) e 0001 (2) (completado com zeros) Blocos são convertidos para: B(16), 2 (16), B (16) e 1 (16) Juntando: 1101100101011 (2) = 1B2B (16) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 38 / 43

Conversões entre Bases Diferentes da 10: Terceiro Método (III) Método é bastante simples e prático Especialmente se decoramos as equivalências Mas há uma limitação: Nem todos os pares de bases são possuem este tipo de relacionamento Como determinar se este tipo de mapeamento existe entre duas bases k e j quaisquer? Suponha que k < j Neste caso, se j é uma potência de k, então podemos fazer este mapeamento Exemplos: Bases 2 e 4, 2 e 8, 2 e 16, e 8 e 64 possuem mapeamento Mas as bases 2 e 10, e 8 e 16, não Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 39 / 43

Conversões entre Bases Diferentes da 10: Terceiro Método (IV) Novamente, não é possível usar o método entre bases como 2 e 10 Considere, por exemplo, uma tentativa errada de conversão de 367 (10) para a base 2: 3 (10) = 011 (2) 6(10) = 110 (2) 7 (10) = 111 (2) Juntando, encontramos 367(10) = 011110111 (2) Errado! Deveria ser 101101111 (2) Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 40 / 43

Conversões entre Bases Diferentes da 10: Terceiro Método (V) Podemos ver a razão para a incompatibilidade entre as bases 2 e 10 tentando construir uma tabela de equivalências: Base 2 Base 10 Base 2 Base 10 Base 2 Base 10 Base 2 Base 10 0000 0 0100 4 1000 8 1100 0001 1 0101 5 1001 9 1101 0010 2 0110 6 1010 1110 0011 3 0111 7 1011 1111 Note como alguns grupos de 4 bits não possuem algarismo decimal correspondente Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 41 / 43

Conversões entre Bases Diferentes da 10: Terceiro Método (VI) Se tentarmos com grupos de 3 bits, o problema ocorre no sentido contrário: Base 2 Base 10 Base 2 Base 10 000 0 100 4 001 1 101 5 010 2 110 6 011 3 111 7 Há algarismos decimais (8 e 9) que não possuem grupo correspondente Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 42 / 43

Conversões entre Bases Diferentes da 10: Exercício Monte uma tabela de equivalências entre as bases 2 e 8 Realize as seguintes conversões de base: 1110110100(2) para a base 8 110010001 (2) para a base 16 ABBA(16) para a base 2 371 (8) para a base 2 762(8) para a base 16 Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 43 / 43