Você está na página 1de 20

Universidade Federal de Santa Catarina

Centro Tecnológico
Departamento de Informática e Estatística
Curso de Graduação em Ciências da Computação

Sistemas Digitais
INE 5406

Complemento da Aula 1-T


1. Exemplos de adição de números com sinal, complemento de
dois e troca de sinal.

Prof. José Luís Güntzel


guntzel@inf.ufsc.br
www.inf.ufsc.br/~guntzel/ine5406/ine5406.html
1. Projeto de Unidade Lógico-Aritmética
Generalizando a Adição Binária
E se os números que quisermos operar tiverem
sinal?
• Precisaremos considerar uma representação que sirva
tanto para binários positivos quanto binários negativos
• A representação mais usada, neste caso, é complemento
de 2
• Vejamos o porquê disto…

INE/CTC/UFSC slide 1TC.2 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão da Adição Binária
Representação de Números Positivos e Negativos em Binário
1. Representação em sinal-magnitude
Exemplos: +3 e -3 representados com 4 bits

sinal magnitude

+3 = 0 0 1 1
-3 = 1 0 1 1

INE/CTC/UFSC slide 1TC.3 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão da Adição Binária
Representação de Números Positivos e Negativos em Binário
2. Representação em complemento de 1
Exemplos: +3 e -3 representados com 4 bits

sinal

+3 = 0 0 1 1
-3 = 1 1 0 0 Obtido a partir do +3,
aplicando-se a inversão
bit a bit

INE/CTC/UFSC slide 1TC.4 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão da Adição Binária
Representação de Números Positivos e Negativos em Binário
3. Representação em complemento de 2
Exemplos: +3 e -3 representados com 4 bits

sinal

+3 = 0 0 1 1
-3 = 1 1 0 1 Obtido a partir do +3,
aplicando-se a inversão bit
a bit e após, somando-se 1
(uma unidade)

INE/CTC/UFSC slide 1TC.5 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão da Adição Binária
Adição de números binários em complemento de 2
Para os próximos exemplos, considere números com 4 bits
(ou seja, o intervalo de representação será [-8,+7])
Exemplo 3: dois números positivos, cuja soma ∈ [-8,+7]

0000 transporte (carry)


0010 (+2)
+ 0100 (+4)

0110 (+6) resultado correto

INE/CTC/UFSC slide 1TC.6 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão da Adição Binária
Adição de números binários em complemento de 2

Exemplo 4: dois números negativos, cuja soma seja  -8

1100 transporte (carry)


1110 (-2)
+ 1100 (-4)
Apesar deste último
carry valer 1, não 1010 (-6) resultado correto
houve overflow

INE/CTC/UFSC slide 1TC.7 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão da Adição Binária
Adição de números binários em complemento de 2
Exemplo 5: um número positivo e um número negativo, tais que o
resultado é positivo

1111 transporte (carry)


0111 (+7)
+ 1111 (-1)
Novamente…
0110 (+6) resultado correto

INE/CTC/UFSC slide 1TC.8 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão da Adição Binária
Adição de números binários em complemento de 2
Exemplo 6: um número positivo e um número negativo, tais que o
resultado é negativo

0001 transporte (carry)


1001 (-7)
+ 0001 (+1)

1010 (-6) resultado correto

INE/CTC/UFSC slide 1TC.9 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão da Adição Binária
Adição de números binários em complemento de 2

Exemplo 7: um positivo e um negativo, iguais em módulo

1111 transporte (carry)


0101 (+5)
+ 1011 (-5)
E novamente…
0000 (0) resultado correto

INE/CTC/UFSC slide 1TC.10 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão da Adição Binária
Adição de números binários em complemento de 2

Exemplo 8: 2 números positivos

0100 transporte (carry)


0100 (+4)
+ 0101 (+5)
ocorre overflow
quando esses 2 bits 1001 (-7) Resultado errado !
são diferentes

o resultado excede o intervalo de representação = overflow

INE/CTC/UFSC slide 1TC.11 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão da Adição Binária
Adição de números binários em complemento de 2

Exemplo 9: 2 números negativos

1000 transporte (carry)


1100 (-4)
+ 1011 (-5)
ocorre overflow
quando esses 2 bits 0111 (+7) Resultado errado !
são diferentes

o resultado excede o intervalo de representação = overflow

INE/CTC/UFSC slide 1TC.12 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão da Adição Binária
Adição de números binários em complemento de 2

Conclusões:
• Números binários em complemento de 2 podem ser
adicionados como se fossem números binários sem sinal
• Neste caso, a detecção de overflow se dá comparando-se
os dois últimos sinais de carry

INE/CTC/UFSC slide 1TC.13 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Somador Binário Paralelo para Números em
Complemento de 2
Conclusão (em termos de circuito):
O somador binário visto até aqui é capaz de somar números com
sinal (desde que os negativos estejam em complemento de 2 e que seja
feita modificação para obtenção do overflow)
a3 b3 a2 b2 a1 b1 a0 b0

c4
SC
c3 c2 c1
SC SC MS

overflow s3 s2 s1 s0
esquemático de blocos
INE/CTC/UFSC slide 1TC.14 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Somador Binário Paralelo (para Números
em Complemento de 2)

A B
n n símbolo no
nível RT
overflow
+
n

INE/CTC/UFSC slide 1TC.15 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Como Trocar o Sinal de um Número?
Assertivas:
• É necessário adotar alguma representação para números
binários positivos e negativos.
• A representação mais usada assume que os negativos
estão em complemento de 2.

Hipótese:

Determinar o
Trocar o sinal equivale a
complemento de 2

INE/CTC/UFSC slide 1TC.16 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Como Trocar o Sinal de um Número?

Determinar o
Trocar o sinal equivale a
complemento de 2

E como determinar o complemento de 2 de um número?

1. Toma-se o número positivo (equivalente a sua


representação em sinal-magnitude)
2. Inverte-se o número, bit a bit
3. Soma-se 1 (uma unidade)

INE/CTC/UFSC slide 1TC.17 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Como Trocar o Sinal de um Número?
Determinar o
Trocar o sinal equivale a
complemento de 2

Comprovação da hipótese (por meio de exemplo):

1 0 0 1 = -7 (com 4 bits, complemento de 2)


Aplicando as regras do complemento de 2…

invertendo, bit a bit 0110


somando 1 0 1 1 1 = +7 (com 4 bits)

Funciona !!
INE/CTC/UFSC slide 1TC.18 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Circuito para Trocar o Sinal de um Número
Seja B, um número binário de 4 bits, operando de
entrada. Desejamos um circuito para calcular –B
b3 b2 b1 b0 B

0 0 0 1

c4 SC c3
SC c2
SC c1
MS

r3 r2 r1 r0 -B

INE/CTC/UFSC slide 1TC.19 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Circuito para Trocar o Sinal de um Número
Configuração 2
b3 b2 b1 b0 B

0 0 0 0

c0 1
c4 SC c3
SC c2
SC c1
SC

r3 r2 r1 r0 -B
Note que para se fazer um “trocador de sinal” com esta
configuração de circuito, a entrada da esquerda de cada SC deve
valer zero. (Isso parece bizarro, não?)
INE/CTC/UFSC slide 1TC.20 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2

Você também pode gostar