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
- 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
- Adicione ambos os números, ou seja, 1101 e 0111;
1101+0111=1 0100 - 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
- 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 - Adicione ambos os números, ou seja, 1101 e 0010;
1101+0010= 1111 - 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
- 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.
- Adicionamos ambos os números complementares, ou seja, 10001 e 10010;
10010+10011= 1 00101 - 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.