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
Download

Circuitos Lógicos Operações aritméticas