pet computação UFPE Aula de apoio aos feras: Sistemas de Numeração 2008.2 Roteiro pet computação UFPE • Visão geral de sistemas numéricos e aprender como transformar de decimal em binário, octal e hexadecimal, e vice-versa. •Aprender as operações aritméticas básicas utilizando estes sistemas de numeração •Transmitir uma noção da importância dos sistemas de numeração binário e hexadecimal, principalmente, para a computação Sistemas Numéricos pet computação UFPE • Principais sistemas numéricos: • Decimal • 0, 1, ..., 9 • Binário • 0, 1 • Octal • 0, 1, ..., 7 • Hexadecimal • 0, 1, ..., 9, A, B, C, D, E, F •É importante atentar que no sistema hexadecimal, as letras de A até F equivalem, em decimal, a 10, 11, 12, 13, 14 e 15, respectivamente Conversão Base X – Base 10 pet computação UFPE • Processo: soma de multiplicações • numd = anxn + an-1xn-1 + ... + a0x0 • Exemplos, converter para a base 10: • 10112 • 4A3B16 •72718 Conversão Base X – Base 10 pet computação UFPE • numd = anxn + an-1xn-1 + ... + a0x0 • Binário – Decimal: 10112 • 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20 • 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 1110 • Octal– Decimal: 72718 • 7 * 83 + 2 * 82 + 7 * 81 + 1 * 80 • 7 * 512 + 2 * 64 + 7 * 8 + 1 * 1 = 376910 • Hexadecimal – Decimal: 4A3B16 • 4 * 163 + A * 162 + 3 * 161 + B * 160 • 4 * 163 + 10 * 162 + 3 * 161 + 11 * 160 • 4 * 4096 + 10 * 256 + 3 * 16 + 11 * 1 = 1900310 Conversão Base X – Base 10 pet computação UFPE • Exercícios, converter para a base 10: • 11002 • 01112 • ABCD16 •A8B216 Respostas pet computação UFPE •Respostas ao exercício anterior: • 11002 = 12 10 • 01112 = 7 10 • ABCD16 = 43981 10 •A8B216 = 43186 10 Conversão Base 10 – Base X pet computação UFPE • num1d r1 x num2d r2 x num3d numn-1d rn-1 numix = rnx...r2xr1x x rn Conversão Base 10 – Base X pet computação UFPE • Exemplo, converter 5310 para binário: 53 2 Momento de Parar: quando o quociente é menor do que o valor da base 1 26 2 0 13 2 1 6 2 0 3 2 1 1 1101012 Neste caso, o valor da base é “2” Conversão Base 10 – Base X pet computação UFPE • Exemplo, converter 101610 para hexadecimal: 1016 16 8 63 16 15 3 3F816 •Exemplo, converter 5310 para hexadecimal: 53 16 5 3 3516 Conversão Base 10 – Base X pet computação UFPE • Exercícios, converter da base 10: • para binário, 25 • para hexadecimal, 156 • Respostas • 25 10 = 11001 2 • 156 10 = 9C 16 Adição e subtração em binário pet• computação UFPE As operações aritméticas com números binários são feitas de forma análoga aos decimais • Para a subtração, em especial, é necessário lembrar os “empréstimos” ensinados durante o primário • É importante ter em mente que: – 1 + 1 = 0 e “vai” 1 – 1+0=0+1=1 – 0+0=0 – 1 + 1 + 1 = 1 e “vai” 1 Exemplos pet computação UFPE Ex1: 1 1 1 - vai 1 1 0 1 1 – 1a. parcela + 1 1 1 1 - 2a. parcela 1 1 0 1 0 – resultado 0 1 Ex2: 1 0 10 1 - 0 1 1 0 0 0 1 1 Complemento a 2 pet• • • • • • computação UFPE Por questões de convenção e eficiência, utiliza-se a notação de complemento a 2 para se trabalhar com números binários no computador Utilizando esta notação, a subtração é uma soma. Por exemplo: 7 – 5 seria 7 + (-5) Embora seja uma alteração sutil, faz uma enorme diferença para o computador Números que tenham o bit mais à esquerda 1 são negativos. Os que tiverem 0 neste bit, serão positivos Para trabalhar com complemento a 2, é necessário saber a quantidade de bits que os números devem ter. Isto varia de acordo com o processador. Caso o resultado exceda esta quantidade de bits, o bit mais à esquerda é desprezado Deve-se proceder da seguinte maneira: – Os números negativos devem ter seus bits invertidos – Soma-se 1 ao valor obtido Exemplo pet• • • • • computação UFPE Faça 10 – 5 utilizando complemento a 2. Suponha que seu processador trabalhe com números de 5 bits Na verdade, deve-se fazer 10 + (-5) 10, em binário é: 01010 5 em binário é: 00101 Aplicando o complemento a 2, obteremos -5: – 00101. Invertendo seus bits, temos: 11010 – Fazendo 11010 + 1, temos 11011 • Agora, basta somar: 01010 + 11011. Assim, obtemos 100101. Como o processador é de 5 bits, o bit mais à esquerda a mais será desprezado. Assim, o número que obtive como resultado foi 00101. De fato, o resultado é 5. Representação no computador pet computação UFPE • O computador trabalha com grupos de bits (palavra). Em geral, essas palavras são de 16 ou 32bits, mas hoje existem computadores manipulando 64bits. • Em geral, ele usa uma palavra para representar os números inteiros (INT, LONG, SHORT...) e um bit é utilizado para indicar o sinal do número (0 positivo e 1 negativo). Números especiais pet computação UFPE • No standard IEEE, além dos números finitos, são definidos números específicos: – - e , para os infinitos. – NaN (not-a-number), para representar resultados de operações como 0/0, - , 0x, – -0, definido com o inverso de -. Erros de aproximação pet computação UFPE • O computador representa os números de uma forma finita e aproximativa: – Precisa de forma de gerenciar o infinitamente pequeno e o infinitamente grande, – Precisa de minimizar e medir os erros de aproximação. Overflow e underflow pet computação UFPE • Os números manipulados – grande demais para ser representados provocam um overflow. – pequeno demais para ser representados provocam um underflow. • Os sistemas têm feedback diferentes em caso de over ou underflow. Certos param a execução, certos dão uma mensagem e outros representam o número de uma forma especifica. Conclusão pet computação UFPE • A representação dos números depende do suporte material para representar e calcular (binário com o computador). • O mesmo número pode ter uma representação finita ou infinita dependendo da base: 1 em base 10 ou base 12, 0,110 em base 10 ou base 2 3 10 O computador usa representação finita, ele não pode representar de forma exata os números reais. pet computação UFPE Obrigado!!! Creative Commons Este material foi elaborado pelo PET Informática da UFPE, estando sob a licença Creative Commons. É permitido que outras pessoas usem e alterem a presente obra, desde que os créditos sejam dados ao PET Informática. Não é permitido o uso comercial do material. Maiores informações: http://creativecommons.org/licenses/by-nc/2.5/br/