Circuitos Lógicos Operações aritméticas Prof.: Daniel D. Silveira Horário: 4a.f e 6a.f de 10h às 12h 1 Circuitos Lógicos – Prof. Daniel D. Silveira Adição binária • A soma binária ocorre da mesma forma que a decimal: » A operação sobre os dígitos na posição do dígito menos significativo (LSD) é efetuada primeiro » O carry (vai um) vai da segunda para a terceira posição • Apenas 4 casos podem ocorrer na soma de 2 bits: 2 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal • Ocorre com a inserção de um bit de sinal, no início do número binário – 0 para número positivos e 1 para negativos • A representação é chamada de sinal‐ magnitude, e não é a mais utilizada, circuitos mais complexos 3 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal • A forma mais utilizada para representação de números com sinais é a complemento 2 • Obtendo o complemento 2 de um número 4 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 • Se o número for positivo, a magnitude é representada na forma binária direta, e um bit de sinal 0 é colocado em frente ao MSB • Se o número for negativo, a magnitude é representada na sua forma de CPL2, e um bit de sinal 1 é colocado em frente ao MSB 5 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 • Exemplos com 5 bits: -9=> • Ou apenas acrescenta‐se o bit de sinal antes da operação de CPL1: 6 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 • Extensão de sinal para números utilizando notação CPL2: apenas repetir o bit de sinal original • ‐9 com cinco bits é 10111: 7 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 • Negação: converter um número positivo em um negativo ou um número negativo em seu equivalente positivo • No sistema de CPL2, a operação de negação é realizada por meio de um CPL2: Iniciar com 0000 1001 +9 Fazer o CPL2 (negação) 1111 0111 ‐9 Negar novamente 0000 1001 +9 8 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 • Casos especiais: sempre que um número com sinal tiver um 1 no bit de sinal e todos os bits de magnitude forem 0, seu equivalente será ‐2N, em que N é o número de bits da magnitude • Ex: 10002 = ‐23 = ‐8, 100002 = ‐24 = ‐16 • Tomar o CPL2 volta onde começamos! • Pode‐se extender o sinal para Nbits+1: 10002 = ‐23 = ‐8 ou 110002 = ‐8 de 5 bits 9 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 • Tabela para números representados no sistema CPL2 com 4 bits 10 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 ‐ Adição • Dois números positivos – 1a e 2a parcela com mesmo número de bits – O bit de sinal de cada termo a ser somado é zero, e o da soma final também 11 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 ‐ Adição • Um número positivo e outro menor e negativo – O bit de sinal também participa da soma – Um carry é gerado e deve ser desconsiderado 12 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 ‐ Adição • Um número positivo e outro maior e negativo – Para obter a magnitude da soma, deve‐se fazer a negação do resultado => 00101=+5 13 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 ‐ Adição • Dois números negativos – Resultado final negativo, deve‐se fazer a negação do resultado => 01101=+13 14 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 ‐ Adição • Números iguais, sinais opostos – O carry é desconsiderado 15 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 ‐ Subtração • Faça a operação de negação do subtraendo – Isso mudará o subtraendo para o seu valor equivalente com sinal oposto • Adicione esse número obtido ao minuendo • Qualquer operação de subtração torna‐se uma de adição! 16 Circuitos Lógicos – Prof. Daniel D. Silveira Representação de números com sinal usando CPL2 ‐ Overflow • O transbordamento (overflow) pode ocorrer quando dois números positivos ou negativos são somados • Pode ser detectado verificando se o bit de sinal do resultado tem o mesmo valor dos bits de sinal dos números a serem somados 17 Circuitos Lógicos – Prof. Daniel D. Silveira Exercícios Propostos 1) Realize as somas no sistema de CPL2, use 8 bits para cada número (incl. sinal). Indique os valores do bit de sinal, do bit de carry e do bit de overflow +9 e +6, +19 e ‐24, +37 e +95,‐48 e ‐80, +17 e ‐16, ‐13 e ‐21, ‐15 e ‐36, ‐37 e ‐95, ‐47 e +47 18 Circuitos Lógicos – Prof. Daniel D. Silveira