logo

Adição e subtração usando complemento de 2

Na seção anterior, aprendemos como poderíamos realizar operações aritméticas, como adição e subtração, usando o complemento de 1. Nesta seção, aprenderemos a realizar essas operações utilizando o complemento de 2.

lista de criação de java

Adição usando complemento de 2

Existem três casos diferentes possíveis quando somamos dois números binários usando o complemento de 2, que é o seguinte:

Caso 1: Soma do número positivo com um número negativo quando o número positivo tem magnitude maior.

Inicialmente encontre o complemento de 2 do número negativo fornecido. Some com o número positivo fornecido. Se obtivermos o carry final 1, o número será um número positivo e o bit de carry será descartado e os bits restantes serão o resultado final.

Exemplo: 1101 e -1001

  1. Primeiro, encontre o complemento de 2 do número negativo 1001. Portanto, para encontrar o complemento de 2, troque todos os 0 por 1 e todos os 1 por 0 ou encontre o complemento de 1 do número 1001. O complemento de 1 do número 1001 é 0110, e adicione 1 ao LSB do resultado 0110. Portanto, o complemento de 2 do número 1001 é 0110+1=0111
  2. Adicione ambos os números, ou seja, 1101 e 0111;
    1101+0111=1 0100
  3. Ao somar os dois números, obtemos o transporte final 1. Descartamos o transporte final. Portanto, a soma dos dois números é 0100.

Caso 2: Soma do valor positivo com um valor negativo quando o número negativo tem magnitude maior.

Inicialmente, adicione um valor positivo ao valor do complemento de 2 do número negativo. Aqui, nenhum transporte final é encontrado. Então, pegamos o complemento de 2 do resultado para obter o resultado final.

Nota: A resultante é um valor negativo.

Exemplo: 1101 e -1110

  1. Primeiro, encontre o complemento de 2 do número negativo 1110. Portanto, para encontrar o complemento de 2, adicione 1 ao LSB do valor do complemento de 1 0001.
    0001+1=0010
  2. Adicione ambos os números, ou seja, 1101 e 0010;
    1101+0010= 1111
  3. Encontre o complemento de 2 do resultado 1110 que é o resultado final. Então, o complemento de 2 do resultado 1110 é 0001, e adicione um sinal negativo antes do número para que possamos identificar que se trata de um número negativo.

Caso 3: Adição de dois números negativos

Nesse caso, primeiro encontre o complemento de 2 de ambos os números negativos e, em seguida, somaremos esses dois números complementares. Neste caso obteremos sempre o carry final, que será adicionado ao LSB, e esquecendo o resultado final, pegaremos o complemento de 2 do resultado.

Nota: A resultante é um valor negativo.

Exemplo: -1101 e -1110 em registro de cinco bits

  1. Primeiramente encontre o complemento de 2 dos números negativos 01101 e 01110. Assim, para encontrar o complemento de 2, adicionamos 1 ao LSB do complemento de 1 desses números. O complemento de 2 do número 01110 é 10010 e 01101 é 10011.
  2. Adicionamos ambos os números complementares, ou seja, 10001 e 10010;
    10010+10011= 1 00101
  3. Ao somar os dois números, obtemos o carry final 1. Esse carry é descartado e o resultado final é o complemento de 2.s do resultado 00101. Portanto, o complemento de 2 do resultado 00101 é 11011, e adicionamos um negativo assine antes do número para que possamos identificar que é um número negativo.

Subtração usando complemento de 2

Estas são as etapas a seguir para subtrair dois números binários usando complemento de 2

  • Na primeira etapa, encontre o complemento de 2 do subtraendo.
  • Adicione o número do complemento com o minuendo.
  • Se obtivermos o carry somando ambos os números, então descartamos esse carry e o resultado é positivo, caso contrário, pegamos o complemento de 2 do resultado, que será negativo.

Exemplo 1: 10101 - 00111

Pegamos o complemento de 2 do subtraendo 00111, que é 11001. Agora, some-os. Então,

10101+11001 =1 01110.

No resultado acima, obtemos o bit de transporte 1. Então descartamos esse bit de transporte e o restante é o resultado final e um número positivo.

Exemplo 2: 10101 - 10111

Pegamos o complemento de 2 do subtraendo 10111, que resulta em 01001. Agora, somamos os dois números. Então,

10101+01001 =11110.

No resultado acima, não obtivemos o carry. Portanto calcule o complemento de 2 do resultado, ou seja, 00010. É o número negativo e a resposta final.