Efetue as subtrações, utilizando o complemento de 2 :
Passo 1
O enunciado pede realizar a subtração entre dois números binários usando complemento de 2. As informações dadas são:
- Minuendo:
. - Subtrahendo:
.
A tarefa é calcularaplicando o método do complemento de 2 e fornecer o resultado em binário.
Passo 2
Primeira coisa prática: para usar complemento de 2 alinhamos os dois números com o mesmo número de bits (preenchendo com zeros à esquerda se necessário). O minuendo tem 7 bits:
. O subtrahendo tem 5 bits; escrevendo com 7 bits fica:
Verificação decimal rápida (só para conferir depois):
e
. Logo o resultado esperado em decimal é
, que em binário é
. Vamos obter isso pelo procedimento pedido.
Passo 3
Lembrando a definição do complemento de 2 e porque funciona:
- O complemento de 2 de um número binário é obtido invertendo todos os bits (isso é o complemento de 1, ou “one’s complement”) e somando
. - Em uma aritmética de largura fixa
de bits, subtrair de é equivalente a somar com o complemento de 2 de . Se a soma produzir um “carry” fora do -ésimo bit, esse carry é descartado e o resultado (nos bits) é o resultado positivo da subtração. Se não houver carry, o resultado em dois complementos é negativo.
Passo 4
Calcular o complemento de 2 do subtrahendo (na forma de 7 bits que já colocamos):
- Inverter todos os bits (complemento de 1):
- Somar
para obter o complemento de 2:
Portanto o complemento de 2 de
(com 7 bits) é
.
Passo 5
Agora somamos o minuendo com esse complemento de 2 (tudo em 7 bits):
Faço a soma bit a bit da direita para a esquerda (mostrando carry):
- LSB:
com carry . - Próximo:
carry com carry . - Próximo:
carry com carry . - Próximo:
carry com carry . - Próximo:
carry com carry . - Próximo:
carry com carry . - MSB:
carry com carry de saída (carry para além do 7º bit).
Escrevendo os bits obtidos (do MSB ao LSB) nos 7 bits temos:
Houve um carry de saída (um carry extra além dos 7 bits). A regra do complemento de 2 em aritmética de largura fixa diz: quando esse carry aparece, descartamos esse carry externo e o resultado positivo é exatamente os
bits obtidos. Logo, descartando o carry, o resultado final da subtração é
.
Passo 6
Checagem rápida em decimal para ter certeza (é sempre reconfortante):
,
. Então
. Em binário
. Confere com o resultado obtido pelo método.