Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Digitais I Introduc¸a˜o Myle`ne Christine Queiroz de Farias Departamento de Engenharia Ele´trica Universidade de Bras´ılia (UnB) Bras´ılia, DF 70910-900 mylene@unb.br March 18, 2018 Aula 05: Representac¸a˜o de nu´meros e circuitos aritme´ticos Suma´rio Cap´ıtulo 02 do Wakerley: Representac¸a˜o Posicional Representac¸a˜o e conversa˜o decimal/bina´rio/octal/hexa Operac¸o˜es de Soma e Subtrac¸a˜o Representac¸a˜o de Nu´meros Negativos Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 2 / 1 Representac¸a˜o Posicional Primeiramente, considere os nu´meros inteiros: Considera-se somente nu´meros positivos, depois expande-se a representac¸a˜o para os nu´meros negativos. Para o sistema decimal: Um nu´mero consiste em d´ıgitos com 10 valores poss´ıveis (0-9) Cada d´ıgito representa um mu´ltiplo de uma poteˆncia de 10 Exemplo: (123)10 = 1 · 102 + 2 · 101 + 3 · 100 Em geral, um inteiro e´ representado por n d´ıgitos decimais D = dn−1dn−2 . . . d1d0 Representac¸a˜o de um valor decimal: V (D) = dn−1 · 10n−1 + dn−2 · 10n−2 + . . . + d1 · 101 + d0 · 100 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 3 / 1 Representac¸a˜o Posicional Primeiramente, considere os nu´meros inteiros: Considera-se somente nu´meros positivos, depois expande-se a representac¸a˜o para os nu´meros negativos. Para o sistema decimal: Um nu´mero consiste em d´ıgitos com 10 valores poss´ıveis (0-9) Cada d´ıgito representa um mu´ltiplo de uma poteˆncia de 10 Exemplo: (123)10 = 1 · 102 + 2 · 101 + 3 · 100 Em geral, um inteiro e´ representado por n d´ıgitos decimais D = dn−1dn−2 . . . d1d0 Representac¸a˜o de um valor decimal: V (D) = dn−1 · 10n−1 + dn−2 · 10n−2 + . . . + d1 · 101 + d0 · 100 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 3 / 1 Representac¸a˜o Posicional Primeiramente, considere os nu´meros inteiros: Considera-se somente nu´meros positivos, depois expande-se a representac¸a˜o para os nu´meros negativos. Para o sistema decimal: Um nu´mero consiste em d´ıgitos com 10 valores poss´ıveis (0-9) Cada d´ıgito representa um mu´ltiplo de uma poteˆncia de 10 Exemplo: (123)10 = 1 · 102 + 2 · 101 + 3 · 100 Em geral, um inteiro e´ representado por n d´ıgitos decimais D = dn−1dn−2 . . . d1d0 Representac¸a˜o de um valor decimal: V (D) = dn−1 · 10n−1 + dn−2 · 10n−2 + . . . + d1 · 101 + d0 · 100 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 3 / 1 Representac¸a˜o Posicional Como os d´ıgitos tem 10 valores poss´ıveis e cada d´ıgito e´ ponderado por uma poteˆncia de 10 dizemos que nu´meros decimais sa˜o nu´meros de base 10 Em sistemas digitais o sistema bina´rio e´ utilizado, ou a base 2, pois os d´ıgitos podem ser somente ‘0’ ou ‘1’ Cada d´ıgito e´ chamado bit A representac¸a˜o posicional e´: B = bn−1bn−2 . . . b1b0 E a representac¸a˜o de um inteiro: V (B) = bn−1 · 2n−1 + bn−2 · 2n−2 + . . . + b1 · 21 + b0 · 20 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 4 / 1 Representac¸a˜o Posicional Como os d´ıgitos tem 10 valores poss´ıveis e cada d´ıgito e´ ponderado por uma poteˆncia de 10 dizemos que nu´meros decimais sa˜o nu´meros de base 10 Em sistemas digitais o sistema bina´rio e´ utilizado, ou a base 2, pois os d´ıgitos podem ser somente ‘0’ ou ‘1’ Cada d´ıgito e´ chamado bit A representac¸a˜o posicional e´: B = bn−1bn−2 . . . b1b0 E a representac¸a˜o de um inteiro: V (B) = bn−1 · 2n−1 + bn−2 · 2n−2 + . . . + b1 · 21 + b0 · 20 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 4 / 1 Representac¸a˜o Posicional Exemplo: O nu´mero bina´rio ‘1101’ representa o valor: V = 1 · 23 + 1 · 22 + 0 · 21 + 1 · 20 V = 8 + 4 + 1 = 13 Enta˜o: (1101)2 = (13)10 O intervalo de nu´meros que pode ser representado por um nu´mero bina´rio depende do nu´mero de bits utilizado Geralmente, usar n bits permite a representac¸a˜o de inteiros positivos no intervalo de 0 a 2n−1 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 5 / 1 Representac¸a˜o Posicional Exemplo: O nu´mero bina´rio ‘1101’ representa o valor: V = 1 · 23 + 1 · 22 + 0 · 21 + 1 · 20 V = 8 + 4 + 1 = 13 Enta˜o: (1101)2 = (13)10 O intervalo de nu´meros que pode ser representado por um nu´mero bina´rio depende do nu´mero de bits utilizado Geralmente, usar n bits permite a representac¸a˜o de inteiros positivos no intervalo de 0 a 2n−1 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 5 / 1 Representac¸a˜o Posicional Exemplo: O nu´mero bina´rio ‘1101’ representa o valor: V = 1 · 23 + 1 · 22 + 0 · 21 + 1 · 20 V = 8 + 4 + 1 = 13 Enta˜o: (1101)2 = (13)10 O intervalo de nu´meros que pode ser representado por um nu´mero bina´rio depende do nu´mero de bits utilizado Geralmente, usar n bits permite a representac¸a˜o de inteiros positivos no intervalo de 0 a 2n−1 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 5 / 1 Conversa˜o decimal/bina´rio Um nu´mero bina´rio pode ser convertido em um nu´mero decimal por meio da expressa˜o: V (B) = bn−1 · 2n−1 + bn−2 · 2n−2 + ... + b1 · 21 + b0 · 20 A conversa˜o de um nu´mero decimal em bina´rio D pode ser feita dividindo-se sucessivamente o nu´mero decimal por 2 com o seguinte procedimento: Dividir o nu´mero decimal (D) por 2, produzindo um quociente Q = D/2 e um resto R. O resto R da divisa˜o por 2 sera´ 0 ou 1 e representara´ um u´nico bit (o bit menos significativo) do nu´mero bina´rio equivalente. Dividir sucessivamente o quociente Q gerado por 2 ate´ que Q = 0. Para cada divisa˜o, o resto R representa um dos d´ıgitos bina´rios (bits) do nu´mero decimal equivalente. Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 6 / 1 Conversa˜o decimal/bina´rio Um nu´mero bina´rio pode ser convertido em um nu´mero decimal por meio da expressa˜o: V (B) = bn−1 · 2n−1 + bn−2 · 2n−2 + ... + b1 · 21 + b0 · 20 A conversa˜o de um nu´mero decimal em bina´rio D pode ser feita dividindo-se sucessivamente o nu´mero decimal por 2 com o seguinte procedimento: Dividir o nu´mero decimal (D) por 2, produzindo um quociente Q = D/2 e um resto R. O resto R da divisa˜o por 2 sera´ 0 ou 1 e representara´ um u´nico bit (o bit menos significativo) do nu´mero bina´rio equivalente. Dividir sucessivamente o quociente Q gerado por 2 ate´ que Q = 0. Para cada divisa˜o, o resto R representa um dos d´ıgitos bina´rios (bits) do nu´mero decimal equivalente. Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 6 / 1 Conversa˜o decimal/bina´rio Exemplo: Converter o nu´mero 497 de decimal para bina´rio Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 7 / 1 Nu´meros Hexadecimais e Octais A representac¸a˜o POSICIONAL pode ser utilizada para qualquer base. Se a base e´ r , temos: K = kn−1kn−2 . . . k1k0 que tem o valor decimal: V (K ) = n−1∑ i=0 ki · r i Nu´meros com base 8 sa˜o chamados de OCTAIS e com base 16 de HEXADECIMAIS Para nu´meros octais, utiliza-se os d´ıgitos de 0 - 7 Para nu´meros hexadecimais utiliza-se os d´ıgitos de 0 9 e de A - F. Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 8 / 1 Nu´meros Hexadecimais e Octais A representac¸a˜o POSICIONAL pode ser utilizada para qualquer base. Se a base e´ r , temos: K = kn−1kn−2 . . . k1k0 que tem o valor decimal: V (K ) = n−1∑ i=0 ki · r i Nu´meros com base 8 sa˜o chamados de OCTAIS e com base 16 de HEXADECIMAIS Para nu´meros octais, utiliza-se os d´ıgitos de 0 - 7 Para nu´meros hexadecimais utiliza-se os d´ıgitos de 0 9 e de A - F. Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 8 / 1 Nu´meros Hexadecimais e Octais Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 9 / 1 Conversa˜o de Base Bina´rio para Hexadecimal: Agrupar d´ıgitos em grupos de 4 bits e atribuir a cada grupo um d´ıgito. Exemplo: (0110 1011 0111)2 = (6B7)16 Hexadecimal para bina´rio: Inverso Exemplo: (A19)16 = (1010 0001 1001)2 Bina´rio para octal: Agrupar d´ıgitos em grupos de 3 bits e atribuira cada grupo um d´ıgito. Exemplo: (011 010 110 111)2 = (3267)8 Octal para bina´rio: Inverso Exemplo: (5031)8 = (101 000 011 001)2 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 10 / 1 Conversa˜o de Base Bina´rio para Hexadecimal: Agrupar d´ıgitos em grupos de 4 bits e atribuir a cada grupo um d´ıgito. Exemplo: (0110 1011 0111)2 = (6B7)16 Hexadecimal para bina´rio: Inverso Exemplo: (A19)16 = (1010 0001 1001)2 Bina´rio para octal: Agrupar d´ıgitos em grupos de 3 bits e atribuir a cada grupo um d´ıgito. Exemplo: (011 010 110 111)2 = (3267)8 Octal para bina´rio: Inverso Exemplo: (5031)8 = (101 000 011 001)2 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 10 / 1 Conversa˜o Conversa˜o de nu´meros para base 10 D = ((. . . ((dp−1) · r + dp−2) · r + . . .) · r + d1) · r + d0 Ex: F1AC16 = (((15) · 16 + 1) · 16 + 10) · 16 + 12 Conversa˜o da base 10 para uma base r : Se dividirmos a equac¸a˜o acima por r , temos o primeiro quociente: Q = (. . . ((dp−1) · r + dp−2) · r + . . .) · r + d1 d0 e´ o resto. Repetindo o processo (diviso˜es por r), fornece vai dar os va´rios restos (di ), que sa˜o os d´ıgitos na base em que eu quero calcular ... Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 11 / 1 Conversa˜o Conversa˜o de nu´meros para base 10 D = ((. . . ((dp−1) · r + dp−2) · r + . . .) · r + d1) · r + d0 Ex: F1AC16 = (((15) · 16 + 1) · 16 + 10) · 16 + 12 Conversa˜o da base 10 para uma base r : Se dividirmos a equac¸a˜o acima por r , temos o primeiro quociente: Q = (. . . ((dp−1) · r + dp−2) · r + . . .) · r + d1 d0 e´ o resto. Repetindo o processo (diviso˜es por r), fornece vai dar os va´rios restos (di ), que sa˜o os d´ıgitos na base em que eu quero calcular ... Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 11 / 1 Resumo das Converso˜es entre Bases Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 13 / 1 Exerc´ıcio Calcular a representac¸a˜o bina´ria, octal e hexadecimal dos seguintes nu´meros: 190 141 173 44 Como podemos realizar operac¸o˜es aritme´ticas em outras bases? 190 + 141 173 + 44 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 14 / 1 Exerc´ıcio Calcular a representac¸a˜o bina´ria, octal e hexadecimal dos seguintes nu´meros: 190 141 173 44 Como podemos realizar operac¸o˜es aritme´ticas em outras bases? 190 + 141 173 + 44 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 14 / 1 Soma de Nu´meros Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 15 / 1 Soma de Nu´meros A soma gera um valor da soma (S) e um vai-um (carry – cout) Vai-um (carry) intermedia´rios: ci Vai-um inicial: cin ou c0 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 16 / 1 Subtrac¸a˜o de Nu´meros Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 17 / 1 Subtrac¸a˜o de Nu´meros minuendo, subtraendo, diferenc¸a A subtrac¸a˜o gera um valor da diferenc¸a (D) e um vem-um (borrow – bout) vem-um (borrow) intermedia´rios: bi vem-um (borrow) inicial: bin ou b0 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 18 / 1 Soma/ Subtrac¸a˜o de Nu´meros em Outras Bases Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 19 / 1 Exerc´ıcio Calcular a representac¸a˜o bina´ria, octal e hexadecimal dos seguintes nu´meros: 190 = (10111111)2 = (276)8 = (BE )H 141 = (10001101)2 = (215)8 = (8D)H 173 = (10101101)2 = (255)8 = (AD)H 44 = (101100)2 = (54)8 = (2C )H Como podemos realizar operac¸o˜es aritme´ticas em outras bases? 190 + 141 = 331 = (101001011)2 = (513)8 = (14B)H 173 - 44 = 129 = (10000001)2 = (201)8 = (81)H Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 20 / 1 Representac¸a˜o de Nu´meros Negativos Existem 3 formatos de se representar nu´meros negativos: Sinal-magnitude Complemento de 1 Complemento de 2 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 21 / 1 Representac¸a˜o de Nu´meros Negativos Sinal-Magnitude: Usa um bit para o sinal (0 = +, 1 = −) e o restante para a magnitude, como se fosse um nu´mero sem sinal. Por exemplo, para nu´meros de 4 bits: +5 = 0101 − 5 = 1101 +3 = 0011 − 3 = 1011 +7 = 0111 − 7 = 1111 Permite representar nu´meros de −(2n−1 − 1) a +(2n−1 − 1) Apesar de ser de fa´cil compreensa˜o, a implementac¸a˜o desta representac¸a˜o na˜o e´ fa´cil ... Como funciona a soma e a subtrac¸a˜o neste sistema? Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 22 / 1 Representac¸a˜o de Nu´meros Negativos Sinal-Magnitude: Usa um bit para o sinal (0 = +, 1 = −) e o restante para a magnitude, como se fosse um nu´mero sem sinal. Por exemplo, para nu´meros de 4 bits: +5 = 0101 − 5 = 1101 +3 = 0011 − 3 = 1011 +7 = 0111 − 7 = 1111 Permite representar nu´meros de −(2n−1 − 1) a +(2n−1 − 1) Apesar de ser de fa´cil compreensa˜o, a implementac¸a˜o desta representac¸a˜o na˜o e´ fa´cil ... Como funciona a soma e a subtrac¸a˜o neste sistema? Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 22 / 1 Representac¸a˜o de Nu´meros Negativos Sinal-Magnitude: Usa um bit para o sinal (0 = +, 1 = −) e o restante para a magnitude, como se fosse um nu´mero sem sinal. Por exemplo, para nu´meros de 4 bits: +5 = 0101 − 5 = 1101 +3 = 0011 − 3 = 1011 +7 = 0111 − 7 = 1111 Permite representar nu´meros de −(2n−1 − 1) a +(2n−1 − 1) Apesar de ser de fa´cil compreensa˜o, a implementac¸a˜o desta representac¸a˜o na˜o e´ fa´cil ... Como funciona a soma e a subtrac¸a˜o neste sistema? Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 22 / 1 Representac¸a˜o de Nu´meros Negativos Sinal-Magnitude: Para nu´meros negativos, no sistema bina´rio, o sinal e´ representado pelo bit mais a` esquerda (mais significativo): 0 = positivo 1 = negativo Para um nu´mero de n bits, os n − 1 bits restantes representam a magnitude. Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 23 / 1 Representac¸a˜o de Nu´meros Negativos Complemento de Um: Em complemento de um, um nu´mero negativo K de n bits e´ obtido subtraindo-se de 2n − 1 o seu nu´mero positivo equivalente (mo´dulo), P: K = (2n − 1)− P Para n = 4: K = (24 − 1)10 − P = (15)10 − P = (1111)2 − P Ex1: -5 (−5)10 = (15)10 − 5 = (1111)2 − (0101)2 = (1010)2 Ex: -3 (−3)10 = (15)10 − 3 = (1111)2 − (0011)2 = (1100)2 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 24 / 1 Representac¸a˜o de Nu´meros Negativos Complemento de Um: Em complemento de um, um nu´mero negativo K de n bits e´ obtido subtraindo-se de 2n − 1 o seu nu´mero positivo equivalente (mo´dulo), P: K = (2n − 1)− P Para n = 4: K = (24 − 1)10 − P = (15)10 − P = (1111)2 − P Ex1: -5 (−5)10 = (15)10 − 5 = (1111)2 − (0101)2 = (1010)2 Ex: -3 (−3)10 = (15)10 − 3 = (1111)2 − (0011)2 = (1100)2 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 24 / 1 Representac¸a˜o de Nu´meros Negativos Complemento de Um: (−3)10 = (15)10 − 3 = (1111)2 − (0011)2 = (1100)2 Pode-se notar que o complemento de 1 pode ser formado complementando cada bit do nu´mero, incluindo o bit do sinal. Complemento de 1 teˆm algumas desvantagens quando usados em operac¸o˜es aritme´ticas. Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 25 / 1 Complemento Base 1 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 26 / 1 Representac¸a˜o de Nu´meros Negativos Complemento de Dois: Em complemento de 2, um nu´mero de n bits, K , e´ obtido subtraindo-se de 2n o seu equivalente positivo, P: K = 2n − P Para n = 4: K = (24)10 − P = (16)10 − P = (10000)2 − P Ex: -5 (−5)10 = (16)10 − (5)10 = (10000)2 − (0101)2 = (1011)2 Ex: -3 (−3)10 = (16)10 − (3)10 = (10000)2 − (0011)2 = (1101)2 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 27 / 1 Representac¸a˜o de Nu´meros Negativos Complemento de Dois: Em complemento de 2, um nu´mero de n bits, K , e´ obtido subtraindo-se de 2n o seu equivalente positivo, P: K = 2n − P Para n = 4: K = (24)10 − P = (16)10 − P = (10000)2 − P Ex: -5 (−5)10= (16)10 − (5)10 = (10000)2 − (0101)2 = (1011)2 Ex: -3 (−3)10 = (16)10 − (3)10 = (10000)2 − (0011)2 = (1101)2 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 27 / 1 Representac¸a˜o de Nu´meros Negativos Complemento de Dois: Em complemento de 2, um nu´mero de n bits, K , e´ obtido subtraindo-se de 2n o seu equivalente positivo, P: K = 2n − P Para n = 4: K = (24)10 − P = (16)10 − P = (10000)2 − P Ex: -5 (−5)10 = (16)10 − (5)10 = (10000)2 − (0101)2 = (1011)2 Ex: -3 (−3)10 = (16)10 − (3)10 = (10000)2 − (0011)2 = (1101)2 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 27 / 1 Representac¸a˜o de Nu´meros Negativos Complemento de Dois: Ex: -5 (−5)10 = (16)10 − (5)10 = (10000)2 − (0101)2 = (1011)2 Ex: -3 (−3)10 = (16)10 − (3)10 = (10000)2 − (0011)2 = (1101)2 Uma maneira simples de achar o complemento de 2 de um nu´mero e´ somar 1 ao seu complemento de 1 Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 28 / 1 Regra para Encontrar o Complemento de Dois Dado um nu´mero com sinal B = bn−1bn−2 . . . b1b0, o seu complemento de 2: K = kn−1kn−2 . . . k1k0 pode ser encontrado da seguinte forma: 1 Examina-se todos os bits de B, da direita para a esquerda ate´ encontrar o primeiro bit ‘1’; 2 Complementando-se todos os bits a` esquerda do primeiro bit ‘1’ encontrado. Exemplo: para B = 0011 0100, o complemento de 2 e´: Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 30 / 1 Regra para Encontrar o Complemento de Dois Dado um nu´mero com sinal B = bn−1bn−2 . . . b1b0, o seu complemento de 2: K = kn−1kn−2 . . . k1k0 pode ser encontrado da seguinte forma: 1 Examina-se todos os bits de B, da direita para a esquerda ate´ encontrar o primeiro bit ‘1’; 2 Complementando-se todos os bits a` esquerda do primeiro bit ‘1’ encontrado. Exemplo: para B = 0011 0100, o complemento de 2 e´: Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 30 / 1 Representac¸a˜o de Nu´meros Inteiros de 4 bits Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 31 / 1 Complemento Base r O complemento r de um nu´mero (D)r e´: r n − D Ou (rn)− D = (rn − 1 + 1)− D = ((rn − 1)− D) + 1 O complemento r de um nu´mero (D)r e´: (r n − 1)− D Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 32 / 1 Representac¸a˜o de Excesso Representac¸a˜o Excesso B uma sequeˆncia de m bits com valores na˜o-negativos 0 ≤ M < 2m pode representar os inteiros com sinal M −B (B e´ o bias do sistema); Ex: O sistema excesso-2m−1 pode representar o intervalo X ∈ [−2m−1,+2m−1], calculando-se X + 2m−1 (sempre na˜o-negativo!). Myle`ne Farias (ENE-UnB) SD1 March 18, 2018 34 / 1
Compartilhar