Universidade Tecnológica Federal do Paraná Bacharelado em Ciência da Computação IC3A Introdução à Ciência da Computação Sistemas de Numeração Marcos Silvano O. Almeida Baseado no material do prof. Rogério A. Gonçalves
Representação de dados Representação de dados no computador Número Um número na memória Caractere Um número na memória Cor Um número na memória de vídeo Circuito eletrônicos presença/ausência de corrente Representação numérica: bit = Binary Digit = ou 0 Usa dispositivo de dois estados: Relé Válvula Transistor Outros: polos magnéticos, dois níveis de tensão/corrente/luz 2
Mas como criar lógica somente com chaves (transistores)? 3
Imagem (TV, Monitor, LCD...) A imagem é formada por pixels. Pixel = cor = número Modos de cor: bit = 2 cores 2 bits = 4 cores 3 bits = 8 cores 4 bits = 6 cores 6 bits = 65.536 24 bits = 6.777.26 4
Texto no computador Cada símbolo é representado por um número binário. A representação depende da tabela de símbolos usada. Um texto corrido é uma sequência de números que presentam: Símbolos: Letras, números, símbolos Controle: Espaço, nova linha, tabulação 5
Documento ODT usa UTF-8 6
Páginas Web (HTML) usa UTF-8 7
8
Como contamos? Contamos utilizando os símbolos gradativamente. Quando terminamos a sequência de símbolos possíveis, usamos combinações. Base decimal 0,, 2, 3, 4, 5, 6, 7, 8, 9 0,,, 8, 9 20, 2,, 28, 29 90, 9,, 98, 99 00, 0,... 9
Decimal (base 0) Sistema Decimal Base 0: Base 0 0 dígitos: 0,,2,...9 - Exemplo: 3030 3 2 0 x0 + 3x0 + 0x0 + 3x0 Notação Posicional 000 + 300 + 0 + 3 = 303 0
Base numérica 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 -) - Exemplos: - Base 0 0 dígitos: 0,,2,3,4,5,6,7,8,9 - Base 2 2 dígitos: 0 e - Base 6 6 dígitos: 0,,2,...,9,A,B,C,D,E,F Convenção: Bases maiores que 0 usam letras para representar algarismos maiores que 9
Sistemas de Numeração Base Binária (2) 2
Binário (Base 2) Sistema Binário Base 2: Base 2 2 dígitos: 0 e - Convenção: - dígito: bit - 4 dígitos: nibble - 8 dígitos: byte - Exemplo: 0 3
Como contamos (binário) Contamos utilizando os símbolos gradativamente. Quando terminamos a sequência de símbolos possíveis, usamos combinações. Base binária 0, 0, 00, 0, 0, 000, 00, 00, 0, 00, 0, 0,... 4
Perguntas Quantos números diferentes podemos representar com dígito/algarismo binário?? E quantos podemos representar com dois? Três? 5
Perguntas reversas Quantos dígitos são necessários para representar o número 560 em binário? E o número 000? E o número 4980? 6
Perguntas reversas Quantos dígitos são necessários para representar o número 560 em binário? 2 x 2 x 2 x 2 x 2 x 2 2 4 8 6 32 64 2 6 = 64; 6 dígitos E o número 000? 2 x 2 x 2 x 2 x 2 x 2 x 2 2 4 8 6 32 64 28 2 7 = 28; 7 dígitos E o número 4980? 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 2 4 8 6 32 64 28 256 52 2 9 = 64; 9 dígitos 7
Base 2 base 0 Conversão de Bases: Binário para Decimal Algoritmo: Multiplicação dos dígitos pela base elevada a posição. 02 5 4 3 2 0 x2 + 0x2 + x2 + x2 + x2 + x2 Notação Posicional 32 + 0 + 8 + 4 + 2 + = 47 8
Base 0 Base 2 Conversão de Base: Decimal para Binário Algoritmo: Divisões sucessivas pela base até resultar em um número menor que a própria base. 47 2 23 2 2 5 2 2 2 0 470 = 02 9
Exercícios Conversões de Bases Converter 00 2 para decimal Converter 400 0 para binário 20
Conversões de Bases Converter 00 2 para decimal 002 Solução dos Exercícios 3 2 0 x23+0x22+0x2+x20 8 + 0 + 0 + = 90 2
Solução dos Exercícios Conversões de Bases Converter 400 0 para binário - Método de Divisões Sucessivas: 400 2 0 200 2 0 00 2 0 50 2 0 25 2 2 2 0 6 2 0 3 2 4000 = 0000002 22
Decimal Binário: Parte Fracionária Se o número for fracionário, a conversão se fará em duas etapas distintas. Consideremos o valor 5,65 0. Passo - Conversão da parte inteira: 5 0 Algoritmo: divisões sucessivas por 2. (já vimos) Passo 2 - Conversão da parte fracionária: 0,65 0 Algoritmo: multiplicações sucessivas por 2. 23
Algoritmo da parte fracionária Consiste em uma série de multiplicações sucessivas do número fracionário pela base (binária); a parte inteira do resultado é o dígito binário fracionário 0,65 x 2 =,3 binário: 0, A parte fracionária, é novamente multiplicada 0,3 x 2 = 0,6 binário: 0,0 0,6 x 2 =,2 binário: 0,0 0,2 x 2 = 0,4 binário: 0,00 0,4 x 2 = 0,8 binário: 0,000 (precisão de 5 dígitos) Repetir a multiplicação até resultar em zero ou chegar no número desejado de casas decimais. 24
Algoritmo da parte fracionária Exemplo, 5,650 para a base 2 5 dígitos e 0 dígitos de precisão Parte inteira se processa normalmente: 50= 2 Parte fracionária: multiplicações sucessivas 5 dígitos de precisão Ampliando para 0 dígitos 0,65 x 2 =,3 0,8 x 2 =,6 0,3 x 2 = 0,6 0,6 x 2 =,2 0,6 x 2 =,2 0,2 x 2 = 0,4 0,2 x 2 = 0,4 0,4 x 2 = 0,8 0,4 x 2 = 0,8 0,8 x 2 =,6 Precisão 5 5,650 =,0002 Precisão 0 5,650 =,000002 Com 5 dígitos: 0,65 = 0,000 25 Com 0 dígitos: 0,65 = 0,00000
Retorno para Decimal Parte inteira: 2 = x 2 3 + x 2 2 + x 2 + x 2 0 = 50 2 = 8 + 4 + 2 + = 50 Parte fracionária com 5 dígitos de precisão: 0,000 2 = x2 - + 0x2-2 + x2-3 + 0x2-4 + 0x2-5 0,000 2 = /2 + 0 + /8 + 0 + 0 0,000 2 = 0,5 + 0,25 = 0,625 0 Parte fracionária com 0 dígitos de precisão: 0,00000 = x2 - + x2-3 + x2-6 + x2-7 + x2-0 0,00000 = /2 + /8 + /64 + /28 + /024 = 0,649440625 0 Quanto maior o número de dígitos de precisão, melhor será a aproximação. 26
Exercícios Conversões de Bases Converter com 5 casas de precisão 4,5 0 = X 2 4 0 = 00 2 0,5 0 = 0, 2 4,5 0 = 00, 2 32,25 0 = X 2 32 0 = 00000 2 0,25 0 = 0,0 2 32,25 0 = 00000,0 2 27
Sistemas de Numeração Base Octal (8) 28
Base 8 Sistema Octal Base 8: Base 8 8 dígitos: 0,, 2, 3, 4, 5, 6, 7 29 Decimal 0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 Octal 0 2 3 4 5 6 7 0 2 3 4 5 6 7 20
Sistemas de Numeração Sistema Octal Conversões de Bases: Octal para Decimal - Exemplo: 448 2 0 x82+4x8+4x80 64 + 32 + 4 = 000 30
Sistemas de Numeração Sistema Octal Conversões de Bases: Decimal para Octal - Exemplo de Divisões Sucessivas: 92 8 4 8 920 = 348 3 3
Exercícios Conversões de Bases Converter 77 8 para decimal Converter 74 0 para octal 32
Conversões de Bases Converter 77 8 para decimal 778 Soluções dos Exercícios 0 7x8+7x80 56 + 7 = 630 33
Soluções dos Exercícios Conversões de Bases Converter 74 0 para octal - Método de Divisões Sucessivas: 74 8 2 9 8 740 = 28 34
Sistemas de Numeração Sistema Octal Conversões de Bases: Octal para Binário: Transforma cada algarismo octal no correspondente binário (para cada octal são necessários 3 bits 2 3 = 8 > Base octal) - Exemplo: 278 Octal Binário 002 0 2 3 4 5 6 7 000 00 00 0 00 0 0 35
Sistema Octal Conversões de Bases: Binário para Octal: Processo inverso agrupa-se 3 bits a partir da direita - Exemplo: Sistemas de Numeração 0002 6 2 = 628 36
Exercícios Conversões de Bases Converter 34 8 para binário Converter 00 2 para octal 37
Conversões de Bases Converter 34 8 para binário 348 Soluções dos Exercícios 0002 38
Conversões de Bases Converter 00 2 para octal 002 Soluções dos Exercícios 2 = 28 Completar com Zeros 39
Sistemas de Numeração Base Hexadecimal (6) 40
Base 6 Sistema Hexadecimal Base 6: Base 6 6 dígitos: 0,, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Decimal 0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 Hexadecimal 0 2 3 4 5 6 7 8 9 A B C D E F 0 4
Sistemas de Numeração Sistema Hexadecimal Conversões de Bases: Hexadecimal para Decimal - Exemplo: 3F6 0 3x6+5x60 48 + 5 = 630 42
Sistema Hexadecimal Conversões de Bases: Decimal para Hexadecimal - Exemplo de Divisões Sucessivas: 000 6 Sistemas de Numeração 8 62 6 4 3 0000 = 3 4 86 = 3E86 43
Exercícios Conversões de Bases Converter C3 6 para decimal Converter 34 0 para hexadecimal 44
Conversões de Bases Converter C3 6 para decimal C36 Soluções dos Exercícios 2 0 x62+2x6+3x60 256 + 92 + 3 = 450 45
Conversões de Bases Converter 34 0 para hexadecimal 34 6 Soluções dos Exercícios 340 = 866 6 8 46
Sistemas de Numeração 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 2 4 = 6 Base hexa) - Exemplo: C36 00000002 Hexadecimal 0 2 3 4 5 6 7 8 9 A B C D E F Binário 0000 000 000 00 000 00 00 0 000 00 00 0 00 0 0 47
Sistema Hexadecimal Conversões de Bases: Binário para Hexadecimal: Processo inverso agrupa-se 4 bits a partir da direita - Exemplo: Sistemas de Numeração 000002 9 8 = 986 48
Exercícios Conversões de Bases Converter ED 6 para binário Converter 000 2 para hexadecimal 49
Conversões de Bases Converter ED 6 para binário ED6 Soluções dos Exercícios 000002 50
Conversões de Bases Converter 000 2 para hexadecimal 0002 Soluções dos Exercícios 6 3 = 636 Insere 0 5
Conversão Octal Hexadecimal As conversões deste tipo são feitas utilizando-se um passo intermediário: Octal Binário Hexadecimal Exemplo: 5F4 6 X 8 5F46 hexadecimal 5 F 4 binário 00 000 (agrupados em 4 dígitos) binário 00 0 00 (agrupados em 3 dígitos) octal 2 7 6 4 2764 8 52
Aritmética Computacional Adição e Subtração 53
Aritmética Computacional Circuitos Aritméticos: circuitos utilizados para construir a ULA (Unidade Lógica e Aritmética) Algoritmos de adição e subtração são os mesmos empregados na base decimal. Adição Exemplo de adição em decimal (dígitos de 0 a 9): 3 7 6 3 7 6 3 7 6 3 7 6 + 4 6 + 4 6 + 4 6 + 4 6 7 3 7 8 3 7 Cada posição só pode representar um dígito, por isso, gera um carry (vai um) 54
Aritmética Computacional Adição em Binário : Exemplo a) 0 b) 0 c) d) Cada posição só pode representar um dígito, por isso, gera um carry 0 + + 0 + + 0 0 c in 0 0 + 0 0 0 0 + 0 0 0 0 0 0 + 0 0 0 0 0 0 + 0 0 0 0 0 0 + 0 0 0 0 0 0 0 + 0 0 0 0 c out Soma 55
Aritmética Computacional Subtração Exemplo de subtração em decimal (dígitos de 0 a 9): Empresta da coluna da esquerda para formar a dezena 7 6 6 7 6 6 7 6-5 8-5 8-5 8 8 8 56
Aritmética Computacional Subtração em Binário Gera um empresta- (carry out) da coluna seguinte: a a coluna passa a valer 2 0 =0 2 Exemplo O carry out será subtraído da coluna seguinte na continuação da operação a) 0 b) 0 c) d) 0 - - 0 - - 0 0 57
Aritmética Computacional Subtração em Binário : Exemplo Gera um empresta- (carry out) da coluna seguinte: a a coluna passa a valer 0 2 =2 0 0 0 0 0 0 0 0 0 0 0 0 0-0 0-0 0-0 0 0-0 0 0-0 0 0 0-0 0 0 0 c in 0 0-0 0 0 0 0 Subtração 58
Resumo Algoritmos de conversão de base: Decimal Qualquer base Divisões sucessivas pela base Qualquer base Decimal Somatória de dígito x base^posição Octal Binário Cada Octal equivale a 3 bits (completar com zeros à esquerda para que o número de bits seja múltiplo de 3) Hexadecimal Binário Cada Hexadecimal equivale a 4 bits (completar com zeros à esquerda para que o número de bits seja múltiplo de 4) Octal Hexadecimal Conversão intermediária para binário Operações sobre números binários Algoritmos são os mesmos das operações com base decimal. Para conferência: http://coderstoolbox.net/number/ 59