Métodos computacionais – 2007/1 Representações numéricas e bases de numeração Objetivos Os alunos deverão ser capazes de: * Representar números na base 2 e 16 (binária e hexadecimal) * Converter representações numéricas entre si * Realizar operações aritméticas em base 2 e 16 Frederico C. Jandre Programa de Engenharia Biomédica COPPE/UFRJ Métodos computacionais – 2007/1 Representações numéricas Números representam quantidades -- São modelos da realidade -- São artificiais -- Não existem na natureza -- São fruto da abstração humana -- São uma ferramenta -- Comunicação -- Operações abstratas -- Predição Um carneirinho Duas pedrinhas Meia dúzia de bananas -- No domínio formal da matemática, são associados a propriedades e operações -- Os mesmos números (conceitos) podem, por suavez, ser representados de várias formas Frederico C. Jandre Fonte:Wikimedia Commons Programa de Engenharia Biomédica COPPE/UFRJ Métodos computacionais – 2007/1 Representações numéricas Representação arábica em base 10 -- É a nossa representação cotidiana: um sistema posicional Cada algarismo (ou dígito) está na casa de uma potência de 10. A quantidade de cada potência de 10 é definida pelo número representado pelo algarismo correspondente. O número representado é computado pela soma das unidades, das dezenas, das centenas etc. Frederico C. Jandre Exemplo: analise o número 2007: 2 grupos de 1000 unidades (2 x 103) mais 7 unidades, ou 2 x 103 + 7 Pergunta: por que a base usual é 10? referências: <http://pt.wikipedia.org/wiki/Algarismo> <http://en.wikipedia.org/wiki/Al-Khwarizmi> Programa de Engenharia Biomédica COPPE/UFRJ Métodos computacionais – 2007/1 Representações numéricas Adição em base 10 A adição, que é associativa (pode-se fazer tomando-se as parcelas 2 a 2) é feita na prática adicionando-se as unidades, depois as dezenas, depois as centenas etc. Em caso de superação da potência de 10 seguinte, passa-se uma unidade adiante e mantém-se o algarismo remanescente. Há um algoritmo para a adição de números em base 10, aprendido nos primeiros anos de educação formal. Frederico C. Jandre Exemplo: Somar 6789, 4567 e 2007 Pergunta: para que se usa o 0? Programa de Engenharia Biomédica COPPE/UFRJ Métodos computacionais – 2007/1 Representações numéricas Outros sistemas posicionais O sistema em base unária é um sistema posicional degenerado. A base é 1, logo as potências da base em todas as posições valem 1! Sistemas não-posicionais Um exemplo de sistema não-posicional: numeração romana -- Não representava o zero! -- Algoritmos para as operações costumavam ser muito complicados. -- Abandonado em favor da representação arábica Frederico C. Jandre Exemplos: Represente em base unária: a) 0 b) 1 c) 2 d) 10 Some os números representados. Pergunta: o algoritmo de adição, aprendido para a base 10, continua valendo? Programa de Engenharia Biomédica COPPE/UFRJ Métodos computacionais – 2007/1 Representações numéricas Sistemas posicionais em outras bases Do mesmo modo que com a base 10, é possível representar números em outras bases. Duas delas são particularmente interessantes para a programação: a base 2 (representação binária) e a base 16 (hexadecimal). Novamente, cada posição representa uma potência da base (começando em 0). O número é computado pela soma dos valores parciais. Frederico C. Jandre Programa de Engenharia Biomédica COPPE/UFRJ Métodos computacionais – 2007/1 Representações numéricas A representação binária Exemplos: Os números são representados em binário por símbolos 0 ou 1, que multiplicam as potências de 2 correspondentes à posição em que se encontram. Represente em base unária os seguintes números representados em base binária: Os algarismos (ou dígitos) binários são também chamados de “bits” (do inglês binary digit). Grupos de 8 bits consecutivos são chamados de “bytes” (do inglês binary term), e de 4 bits, “nibble” (um jogo de palavras). Frederico C. Jandre a) 0 b) 1 c) 10 d) 1000 Perguntas: por que os números em base 2 são representados apenas com os algarismos 0 e 1? É possível seguir o mesmo algoritmo de adição usado em base 10? Programa de Engenharia Biomédica COPPE/UFRJ Métodos computacionais – 2007/1 Representações numéricas A base 16 Na base hexadecimal, analogamente à base 10 e à base 2, as posições correspondem a potências inteiras de 16. Há 16 números representáveis com 1 algarismo em hexadecimal. Por isso, além dos algarismos de 0 a 9, são necessários mais 6 símbolos, para representar os números de 10 a 15. Para isso, são usadas as letras de A a F. Frederico C. Jandre Exemplos: Represente em base decimal os seguintes números hexadecimais: a) 9 b) A c) AA d) FF Perguntas: quantos bits são necessários para representar um número de 1 algarismo hexadecimal? E 2 algarismos? E N algarismos? Programa de Engenharia Biomédica COPPE/UFRJ Métodos computacionais – 2007/1 Representações numéricas Conversão entre a base 2 e a base 16 Um número de 4 bits pode assumir 16 valores. Esses valores podem ser representados por apenas um algarismo hexadecimal. Números de 8 bits, entre 0 e 255 decimal, são representados por 2 algarismos hexadecimais, entre 0 e FF. Generalizando, números com B bits podem ser representados por H algarismos hexadecimais, onde é o menor inteiro maior ou igual a B/4. Essa propriedade simplifica a interconversão de representações nas bases 2 e 16. Frederico C. Jandre Exemplos: Represente em base hexadecimal os seguintes números binários: a) 1010 b) 1001010010101000110101011011110 Perguntas: como se demonstra formalmente essa propriedade? Qual seria um algoritmo para conversão de decimal para binário? Programa de Engenharia Biomédica COPPE/UFRJ