Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Prof. Rodrigo Hübner rodrigohubner@utfpr.edu.br IC31A – Introdução à Ciência da Computação Universidade Tecnológica Federal do Paraná – UTFPR Bacharelado em Ciência da Computação Aula 03 Sistemas de numeração 2 Motivação: • Dispositivos que operam com diferentes sistemas de numeração. Ex: Displays BCD, Simuladores, Calculadoras • Circuitos Digitais usam 2 estados para representar uma informação. Ex: Circuito Base Transistor • Números binários podem ser muito extensos Difíceis de representar Usa base com menos algarismos Sistemas de Numeração 3 - Generalizando: Dado uma base b, qualquer quantidade N pode se representada com um número tal como segue: Onde a é um algarismo válido para a base b e n é a posição que algarismo ocupa na formação do número. - Parte inteira: - Parte fracionária: N b=an⋅b nan−1⋅b n−1...a2⋅b 2a1⋅b 1a0⋅b 0a−1⋅b −1a−2⋅b −2...a−n⋅b −n an⋅b nan−1⋅b n−1...a2⋅b 2a1⋅b 1a0⋅b 0 a−1⋅b −1a−2⋅b −2...a−n⋅b −n Formato Geral N b=∑ i=n −n ai⋅b i 4 - Exemplo: 125,38 (base 10) 1×1022×1015×1003×10−18×10−2 1 2 5 3 8 2 1 0 -1 -2 Algarismos Posições Vírgula 1×1002×105×13×0,18×0,01 1002050,30,08 1250,38 125,38 Formato Geral 5 Base: - É a quantidade de algarismos ou símbolos disponíveis para representar todos os números no sistema de numeração é de 0 a (base -1) - Exemplos: - Base 10 10 dígitos: 0,1,2,...9 - Base 2 2 dígitos: 0 e 1 - Base 16 16 dígitos: 0,1,2,...,9,A,B,C,D,E,F Convenção: Bases maiores que 10 usam letras para representar algarismos maiores que 9 Sistemas de Numeração 6 Sistema Decimal Base 10: Base 10 10 dígitos: 0,1,2,...9 - Exemplo: 130310 1000 + 300 + 0 + 3 = 1303 Notação Posicional 1x10 + 3x10 + 0x10 + 3x10 3 2 1 0 Sistemas de Numeração 7 Sistema Binário Base 2: Base 2 2 dígitos: 0 e 1 cada dígito é chamado de bit (binary digit) - Convenção: - 1 dígito: bit - 4 dígitos: nibble - 8 dígitos: byte - Exemplo:101111 Sistemas de Numeração 8 Sistema Binário Conversões de Bases: Binário para Decimal - Exemplo: 1011112 5 4 3 2 1 0 1x2 + 0x2 + 1x2 + 1x2 + 1x2 + 1x2 32 + 0 + 8 + 4 + 2 + 1 = 47 Sistemas de Numeração 9 Sistema Binário Conversões de Bases: Decimal para Binário - Parte Inteira: – 2 Métodos: soma de potências e divisões sucessivas – Exemplo de Soma de Potências: 1011112 47 = 32 + 0 + 8 + 4 + 2 + 1 5 4 3 2 1 0 1x2 + 0x2 + 1x2 + 1x2 + 1x2 + 1x2 Sistemas de Numeração 10 Sistema Binário Conversões de Bases: Decimal para Binário - Exemplo de Divisões Sucessivas: 47 2 23 2 11 2 5 2 2 2 1 1 1 1 1 0 4710 = 1011112 Sistemas de Numeração 11 ● Se o número for fracionário, a conversão se fará em duas etapas distintas: • Conversão da parte inteira: como já vimos. • Conversão da parte fracionária Parte Fracionária 12 O algoritmo para a parte fracionária • consiste em uma série de multiplicações sucessivas do número fracionário a ser convertido pela base; • a parte inteira do resultado da primeira multiplicação será o valor da primeira casa fracionária e a parte fracionária será de novo multiplicada pela base; • e assim por diante, até o resultado dar zero ou até encontrarmos o número de casas decimais desejado. Parte Fracionária 13 ● Por exemplo, 15,6510 para a base 2, com 5 dígitos e com 10 dígitos de precisão: ● Parte inteira se processa normalmente: 1510= 11112 ● Parte fracionária: Com 5 dígitos Ampliando para 10 dígitos 0,65 x 2 = 1,3 0,8 x 2 = 1,6 0,30 x 2 = 0,6 0,6 x 2 = 1,2 0,60 x 2 = 1,2 0,2 x 2 = 0,4 0,20 x 2 = 0,4 0,4 x 2 = 0,8 0,40 x 2 = 0,8 0,8 x 2 = 1,6 Com 5 dígitos: 0,65 = 0,10100 Com 10 dígitos: 0,65 = 0,1010011001 Precisão 5 15,6510 = 1111,101002 Precisão 10 15,6510 = 1111,10100110012 Parte Fracionária 14 ● A conversão foi interrompida quando encontramos o número de algarismos da precisão solicitada no enunciado. No entanto, com não encontramos resultado 0 em nenhuma das multiplicações, poderíamos continuar efetuando multiplicações indefinidamente até encontrar (se encontrarmos) resultado zero. ● O resultado encontrado, no caso de interrompermos por chegarmos no número de dígitos especificado, é aproximado. ● Fazendo a conversão inversa é possível notarmos o efeito da aproximação. Parte Fracionária 15 ● A conversão foi interrompida quando encontramos o número de algarismos da precisão solicitada no enunciado. No entanto, com não encontramos resultado 0 em nenhuma das multiplicações, poderíamos continuar efetuando multiplicações indefinidamente até encontrar (se encontrarmos) resultado zero. ● O resultado encontrado, no caso de interrompermos por chegarmos no número de dígitos especificado, é aproximado. ● Fazendo a conversão inversa é possível notarmos o efeito da aproximação. Parte Fracionária 16 ● Parte inteira: 11112 = 1510 ● Parte fracionária: • Com precisão 5: ● Com precisão 10: ● Quanto maior o número de algarismos forem considerados, melhor será a aproximação. 0,101002=1x2 −1+ 0x2−2+ 1x2−3+ 0x2−4+ 0x2−5=0,5+ 0,125=0,62510 0,10100110012=1x2 −1+ 0x2−2+ 1x2−3+ 0x2−4+ 0x2−5+ 1x2−6+ 1x2−7+ 0x2−8+ 0x2−9+ 1x2−10 0,10100110012=1/21/81/641/1281/1024 0,10100110012=0,50,1250,0156250,00781250,0009765625=0,649414062510 Parte Fracionária 17 Conversões de Bases • Converter 10012 para decimal • Converter 40010 para binário • Converter 356,2610 para binário Exercícios 18 Conversões de Bases • Converter 10012 para decimal 10012 1x23+0x22+0x21+1x20 8 + 0 + 0 + 1 = 910 3 2 1 0 Solução dos Exercícios 19 Conversões de Bases • Converter 40010 para binário - Método de Divisões Sucessivas: 400 2 200 2 100 2 50 2 25 2 0 0 0 0 1 40010 = 1100100002 12 2 6 20 0 3 2 11 Solução dos Exercícios 20 Sistema Hexadecimal Base 16: Base 16 16 dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 1016 C12 D13 E14 F15 A10 B11 99 88 77 66 55 44 33 22 11 00 HexadecimalDecimal Sistemas de Numeração 21 Sistema Hexadecimal Conversões de Bases: Hexadecimal para Decimal - Exemplo: 3F16 3x161+15x160 48 + 15 = 6310 1 0 Sistemas de Numeração 22 Sistema Hexadecimal Conversões de Bases: Decimal para Hexadecimal - Exemplo de Divisões Sucessivas: 1000 16 62 16 3 8 14 100010 = 3 14 816 = 3E816 Sistemas de Numeração 23 Conversões de Bases • Converter 1C316 para decimal • Converter 13410 para hexadecimal Exercícios 24 Conversões de Bases • Converter 1C316 para decimal 1C316 1x162+12x161+3x160 256 + 192 + 3 = 45110 2 1 0 Soluções dos Exercícios 25 Conversões de Bases • Converter 13410 para hexadecimal 134 16 86 13410 = 8616 Soluções dos Exercícios 26 Sistema Hexadecimal Conversões de Bases: Hexadecimal para Binário: Transforma cada algarismo hexa no correspondente binário (para cada hexa são necessários 4 bits 24 = 16 – Base hexa) - Exemplo: C1316 1100000100112 1111F 1110E 1101D 1100C 1011B 1010A 10019 10008 01117 01106 01015 01004 00113 00102 00011 00000 BinárioHexadecimal Sistemas de Numeração 27 Sistema Hexadecimal Conversões de Bases: Binário para Hexadecimal: Processo inverso – agrupa-se 4 bits apartir da direita - Exemplo: 9 8 = 9816 100110002 Sistemas de Numeração 28 Conversões de Bases • Converter 1ED16 para binário • Converter 11000112 para hexadecimal Exercícios 29 Conversões de Bases • Converter 1ED16 para binário 1ED16 0001111011012 Soluções dos Exercícios 30 Conversões de Bases • Converter 11000112 para hexadecimal 6 3 = 6316 11000112 Insere 0 Soluções dos Exercícios 31 Adição e SubtraçãoAdição e Subtração Aritmética Computacional 32 Circuitos Aritméticos: circuitos utilizados para construir a ULA (Unidade Lógica e Aritmética) Adição Exemplo de adição em decimal (dígitos de 0 a 9): Cada posição só pode representar um dígito, por isso, gera um carry (vai um) 3 7 6 4 6 1+ 3 7 6 4 6 1 7 + 1 3 7 6 4 6 1 3 7 + 3 7 6 4 6 1 8 3 7 1 + Aritmética Computacional 33 a) 0 0 0 + Adição em Binário : Exemplo Cada posição só pode representar um dígito, por isso, gera um carryb) 0 1 1 + c) 1 0 1 + d) 1 1 10 + 1 0 1 0 1 0 0 1 1 1+ 1 0 1 0 1 0 0 1 1 1 0 + 1 0 1 0 1 0 0 1 1 1 0 0 + 1 0 1 0 1 0 0 1 1 1 1 0 0 + 1 0 1 0 1 0 0 1 1 1 1 1 0 0 + 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 + 1 1 1 11 10 0 cin cout Soma Aritmética Computacional 34 Subtração Exemplo de subtração em decimal (dígitos de 0 a 9): Empresta 1 da coluna da esquerda para formar a dezena 7 6 5 8- 7 6 5 8 - 16 8 7 6 5 8 8 - 6 1 Aritmética Computacional 35 Subtração em Binário Exemplo a) 0 0 0 - b) 0 1 1 - c) 1 0 1 - d) 1 1 0 - Gera um “empresta-1” (carry out) da coluna seguinte: a 1a coluna passa a valer 210=102 O carry out será subtraído da coluna seguinte na continuação da operação 1 Aritmética Computacional 36 Subtração em Binário : Exemplo Gera um “empresta-1” (carry out) da coluna seguinte: a 1a coluna passa a valer 102=210 1 0 1 0 0 0 1 1- 1 0 1 0 0 0 1 1 - 1 0 1 0 0 0 1 1 - 10 Subtração 1 1 0 1 0 1 0 0 0 1 1 - 11 1 0 1 0 0 0 1 1 - 11 1 0 1 0 0 0 1 1 - 1 11 0 1 1 0 1 0 0 0 1 1 - 1 1 110 Aritmética Computacional 10 0 10 0 1 0 1 37 Próxima Aula ● Algoritmos ● Linguagens de Programação Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37
Compartilhar