210 likes | 285 Views
Aula de apoio aos feras: Sistemas de Numeração. 2008.2. Roteiro. 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
E N D
Aula de apoio aos feras: Sistemas de Numeração 2008.2
Roteiro • 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 • 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 • 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 • 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 • Exercícios, converter para a base 10: • 11002 • 01112 • ABCD16 • A8B216
Respostas • Respostas ao exercício anterior: • 11002 = 12 10 • 01112 = 7 10 • ABCD16 = 43981 10 • A8B216 = 43186 10
Conversão Base 10 – Base X • num1d x • r1 num2d x • r2 num3d • numn-1d x • rn-1 rn • numix = rnx...r2xr1x
Conversão Base 10 – Base X • Exemplo, converter 5310 para binário: • 53 2 • 1 26 2 • 0 13 2 • 1 6 2 • 0 3 2 • 1 1 • 1101012 Momento de Parar: quando o quociente é menor do que o valor da base Neste caso, o valor da base é “2”
Conversão Base 10 – Base X • 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 • 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 • 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 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 • 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 • 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 • 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 • 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 • 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 • 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 • 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: em base 10 ou base 12, em base 10 ou base 2 O computador usa representação finita, ele não pode representar de forma exata os números reais.
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/