Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas de numeração e aritmética binária Introdução à programação de computadores – EMB 5013 Objetivos da aula • Sistemas de numeração: – decimal, binário, octal e hexadecimal; • Conversão de base; • Conceitos básicos de aritmética binária e representação de números pelo computador; • Noções de codificação. 2 Sistemas de numeração • Representação de valores numéricos: – Analógica: as quantidades variam continuamente numa faixa de valores; – Digital: as quantidades variam em passos discretos; 3 Sistemas de numeração • Sistema decimal ou de base 10: – Composto de 10 algarismos ou símbolos; • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 . • Quando expressam um número são chamados dígitos; – É do tipo posicional: o valor do dígito depende da posição dentro do número (numeral); – Com N posições podemos representar 10N números 4 Sistemas de numeração • Sistema decimal (cont.): – Exemplo: 196710 Pesos expressos como potências de dez: 196710 = 1 x 10 3 + 9 x 102 + 6 x 101 + 7 x 100 5 1000 1 x 1000 1 x 103 900 9 x 100 9 x 102 60 6 x 10 6 x 101 + 7 +7 x 1 +7 x 100 1967 1967 1967 Sistemas de numeração • Sistema decimal (cont.): – Exemplo: 2745,21410 Pesos expressos como potências de dez: 2745,21410 = 2 x 10 3 + 7 x 102 + 4 x 101 + 5 x 100 + 2 x 10-1 + 1 x 10-2 + 4 x 10-3 6 2000,000 2 x 1000 2 x 103 745,000 7 x 100 7 x 102 40,000 4 x 10 4 x 101 5,000 5 x 1 5 x 100 0,200 2 x 0,1 2 x 10-1 0,010 1 x 0,01 1 x 10-2 + 0,004 +4 x 0,001 +4 x 10-3 2745,214 2745,214 2745,214 Sistemas de numeração • Sistema decimal (cont.): – Contagem decimal: 7 0 10 100 1000 1 11 101 1001 2 12 … … 3 13 199 1499 4 14 200 1500 5 15 … 201 … 6 16 … 1999 7 17 997 2000 8 18 998 2001 9 19 999 … Sistemas de numeração • Sistema decimal não é adequado para sistemas digitais: – Exigiria 10 níveis de tensão (ou corrente) distintos; – Sistema binário: • Apenas dois níveis de tensão 8 Binário 0 Binário 1 Não usado 0 V 0,8 V 2 V 5 V Sistemas de numeração • Sistema binário ou de base 2: – Composto de 2 algarismos ou símbolos; • 0, 1; • Mas pode ser usado para caracterizar qualquer número do sistema decimal; • O dígito é chamado de bit (binary digit). – É do tipo posicional; – Com N posições podemos representar 2N números 9 Sistemas de numeração • Sistema binário (cont.): – Contagem binária: • Restrita ao número de bits disponíveis – Ex.: 3 bits 10 22=4 21=2 20=1 Decimal 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 Peso Sistemas de numeração • Sistema octal ou de base 8: – Composto de 8 algarismos ou símbolos; • 0, 1, 2, 3, 4, 5, 6, 7; • O dígito é chamado de bit (binary digit). – É do tipo posicional; – Com N posições podemos representar 8N números 11 Sistemas de numeração • Sistema octal (cont.): – Contagem octal: 12 0 10 100 1000 1 11 101 1001 2 12 … … 3 13 177 1477 4 14 200 1500 5 15 … 201 … 6 16 … 1777 7 17 777 2000 Sistemas de numeração • Sistema hexadecimal ou de base 16: – Composto de 16 algarismos ou símbolos; • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. – É do tipo posicional; – Com N posições podemos representar 16N números 13 Sistemas de numeração • Sistema hexadecimal (cont.): – Contagem hexadecimal: 14 0 10 100 1 11 101 … … … 9 19 1FF A 1A 200 B 1B … 201 C 1C … D 1D 2FF E 1E 300 F 1F … Sistemas de numeração • Sistema de base B: – Composto de B algarismos ou símbolos; – Com N posições podemos representar BN números; – É do tipo posicional; – Expresso em decimal como potências de B; 15 Conversão de base • Para cada sistema numérico apresentado vimos como obter o equivalente decimal; • Agora vamos ver outras conversões possíveis. 16 Conversão de base Decimal para binário • A conversão do sistema Decimal para o binário é realizado por sucessivas divisões por 2, ou seja, o número em decimal é dividido sucessivamente por 2 até que o quociente seja igual a 0 • O resto da última divisão representa o dígito mais à esquerda do número binário, o resto da próxima divisão o próximo dígito, e assim por diante 17 Conversão de base Decimal para binário 13 2 1 6 2 0 3 2 1 1 2 1 0 => 1310 = 11012 18 Conversão de base Decimal para binário 1492 2 0 746 2 0 373 2 1 186 2 0 93 2 1 46 2 0 23 2 1 11 2 1 5 2 1 2 2 0 1 2 149210 = 101110101002 1 0 19 Conversão de base • Outra opção de representação das divisões sucessivas: 110012 1001012 20 3710 para binário 37/2 = 18,5 0,5 x 2 1 18/2 = 9,0 0 x 2 0 9/2 = 4,5 0,5 x 2 1 4/2 = 2,0 0 x 2 0 2/2 = 1,0 0 X 2 0 1/2 = 0,5 0,5 x 2 1 2510 para binário 25/2 = 12 resto 1 12/2 = 6 resto 0 6/2 = 3 resto 0 3/2 = 1 resto 1 1/2 = 0 resto 1 Conversão de base Binário para decimal A conversão do sistema binário para o decimal é realizado através da forma polinomial: Aj-1 * 2 j-1 + Aj-2 * 2 j-2 + ... + A2 * 2 2 + A1 * 2 1 + A0 * 2 0 Onde A = 0 ou 1 e j é a posição do dígito do número - Exemplo: 101102 = 1*2 4 + 0*23 + 1*22 + 1*21 + 0*20 = 16+4+2 = 2210 21 Conversão de base • Decimal para octal: – Como decimal para binário, mas usar 8 ao invés de 2; • Decimal para hexadecimal: – Como decimal para binário, mas usar 16 ao invés de 2; • Decimal para base B: – Como decimal para binário, mas usar B ao invés de 2; 22 Conversão de base • Binário para octal/octal para binário: – Fácil conversão; – Números binários são muito extensos – Digitos octais são convertidos nos equivalentes binários de três bits e vice-versa: 23 Dígito octal 0 1 2 3 4 5 6 7 Equivalente binário 000 001 010 011 100 101 110 111 4 7 2 8 101 100 011 001 2 100 111 010 2 5 4 3 1 8 Conversão de base • Binário para hexa/hexa para binário: – Como no caso do octal, “abrevia” números binários – Digitos hexadecimais são convertidos nos equivalentes binários de quatro bits e vice-versa: 24 Dígito hexa 0 1 2 3 4 5 6 7 Equivalente binário 0000 0001 0010 0011 0100 0101 0110 0111 9 F 2 16 0011 1010 0110 2 1001 1111 0010 2 3 A 6 16 Dígito hexa 8 9 A (10) B (11) C (12) D (13) E (14) F (15) Equivalente binário 1000 1001 1010 1011 1100 1101 1110 1111 Conversão de base • Octal para hexa/hexa para octal: – Primeiro é necessário converter para binário; 25 9 F 2 16 1001 1111 0010 2 3 A 6 164 7 6 2 8 1 6 4 68 001 110 100 110 2 Conversão de base 26 Resumo: Conversão de base • Base A para base B Conversão em duas etapas: 1 – Base A para decimal - polinômio 2 – Número decimal para base B – divisões sucessivas 27 Conversão de base • Exemplo de conversão da Base A para a base B – Base 4: dígitos 0, 1, 2, 3; – Base 7: dígitos 0, 1, 2, 3, 4, 5, 6; – Converter 2214 para base 7 • Passo 1: converter 2214 para base decimal (polinômio) – 2 x 42 + 2 x 41 + 1 x 40 = 2 x 16 + 2 x 4 + 1 x 1 = 32 + 8 + 1 = 4110 • Passo 2: Converter o valor encontrado (4110) para a base 7 (divisão) 41 7 6 5 7 5 0 => 2214 = 567 28 Aritmética binária • Representação dos números: – As informções manipuladas pelo computador estão na base binária; – Como o computador realiza as operações aritméticas? – Como os números negativos são armazenados? – No escopo desta disciplina só vamos tratar dos número inteirose das operações de negação, adição e subtração. 29 Aritmética binária • Representação dos números inteiros: – Os números inteiros sem sinal são armazenados conforme apresentado anteriormente; • 8 bits = 1 byte – Existem diferentes convenções para representar os números com sinal (positivo e negativo); – A mais utilizada é a representação em complemento a dois. 30 Aritmética binária • Representação em complemento a dois: – Utilizada para representar número inteiros positivos e negativos; – O bit mais significativo (mais à esquerda) é o bit de sinal: • 0 � número é positivo • 1 � número negativo – O número 0 (zero) é representando com todos os bits em zero: • É considerado (na representação) um número positivo. 31 Aritmética binária • Representação em complemento a dois (cont.): – Número positivo: • Como na forma binária normal, mas com o bit de sinal no valor 0; – Número negativo: • É obtido pela operação de negação do número positivo; 32 Aritmética binária • Representação em complemento a dois (cont.): – Um número A positivo de n bits possui: • Um bit de sinal: an-1 = 0; • Os bits restantes (an-2an-3...a1a0) representam a magnitude do número; – Conversão para decimal: A = ∑ 2�a� para A ≥ 0 � � ��� 33 Aritmética binária • Representação em complemento a dois (cont.): – Um número A negativo de n bits possui: • Um bit de sinal: an-1 = 1; • Os bits restantes (an-2an-3...a1a0) representam a magnitude do número; – Conversão para decimal: 34 ∑ − = − − +−= 2 0 1 1 22 n i i i n n aaA Aritmética binária • Representação em complemento a dois (cont.): – A conversão de decimal para números binários em complemento a dois positivos é realizada da mesma maneira apresentada anteriormente e números negativos são precisos duas etapas : divisões sucessivas (ignorando o sinal) e negação do número binário encontrado 35 Aritmética binária • Negação: – Negar um número inteiro na base binária representado em complemento a dois consiste em dois passos: • 1) Inverter todos os bits (0 � 1 e 1 � 0) • 2) Considerar o resultado do passo 1 como um número binário sem sinal e somar 1, sendo que: 36 0 0 1 1 + 0 + 1 + 0 + 1 0 1 1 10 1 carry Aritmética binária • Negação (cont.): – Exemplo: Negar o número 0110002 = 2410 • Passo 1: inverter todos os bits: • Passo 2: somar 1: 37 Bit de sinal (positivo) 011000 100111 100111 +000001 101000 carry111 = -2410 Aritmética binária • Adição e subtração: – A adição prossegue como se os números fossem sem sinal; – Os resultados obtidos também serão números em complemento a dois; – O bit de carry que eventualmente resultar da adição dos bits mais significativos é ignorado; – Em complemento a dois a subtração é a adição de um número com a negação de outro número. 38 Aritmética binária • Adição e subtração (cont.): – Exemplos: 39 1001 -7 + 0101 + 5 1110 -2 1100 -4 + 0100 + 4 0000 0 carry é descartado 0011 3 + 0100 + 4 0111 7 0101 5 - 0010 -(+2) 0101 5 + 1110 +(-2) 0011 3 carry é descartado Aritmética binária • Adição e subtração (cont.): – Se o resultado da adição ou subtração não puder ser representado com o número de bits definidos, ocorre um erro de overflow; 40 0101 5 + 0100 +4 1001 overflow (a adição de dois números positivos resultou em um número negativo!) 1010 -6 + 1100 -4 0110 overflow (a adição de dois números negativos resultou em um número positivo!) Codificação • Quando os números, letras ou palavras são representados por um grupo especial de símbolos, dizemos que estão codificados; • O grupo de símbolos é chamado código; – Exemplos: • Binário Codificado Decimal (BCD) • Código Excesso-3 • Código Gray • Códigos Alfanuméricos – Código ASCII – UNICODE – UTF-8 (“padrão” na web) 41 Codificação • Exemplo (ASCII): 42 Binário Oct Dec Hex Glifo 010 0001 041 33 21 ! 010 0010 042 34 22 " 010 0011 043 35 23 # 010 0100 044 36 24 $ 010 0101 045 37 25 % 010 0110 046 38 26 & ... ... ... ... ... 011 0001 181 97 61 a Avisos • Conteúdo desta aula: – Capítulo 3 do livro do Guimarães e Lages; • Lista de exercícios: – Disponível no moodle. 43 Exercícios 44 Converta os seguintes números para base decimal: a) 1010112 b) 100001102 Converta os seguintes números para base binária: a) 1FF016 b) 128710 c) 7538 Converta os seguintes números de uma base A para base B: a) 25713 => X6 b) 14325 => X7 Exercícios 45 Calcule as seguintes operações para números inteiros com sinal, considerando números de 8 bits: a) 00100101 + 00011110 b) 00100110 + 00010000 c) 00100111 + 00011110 Considere números de 4 bits. Encontre a negação dos seguintes números em complemento a dois: a) 0101 b) 1001 Exercícios (respostas) 46 Converta os seguintes números para base decimal: a) 1010112� 43 b) 100001102� 134 Converta os seguintes números para base binária: a) 1FF016� 0001 1111 1111 0000 b) 128710 � 10100000111 c) 7538 � 111 101 011 Converta os seguintes números de uma base A para base B: a) 25713 => X6 � 25713 = 41010 = 15226 b) 14325 => X7 � 14325 = 24210 = 4647 Exercícios (respostas) 47 Calcule as seguintes operações para números inteiros com sinal, considerando números de 8 bits: a) 00100101 + 00011110 � 0 1 0 0 0 0 1 1 b) 00100110 + 00010000 � 0 0 1 1 0 1 1 0 c) 00100111 + 00011110 � 0 1 0 0 0 1 0 1 Considere números de 4 bits. Encontre a negação dos seguintes números em complemento a dois: a) 0101 � 1 0 1 1 b) 1001 � 0 1 1 1
Compartilhar