Efetue as subtrações, utilizando o complemento de 2 :
10010111_{2}-1011_{2}

Passo 1

O enunciado pede para calcular a subtração usando complemento de 2:
10010111_2 - 1011_2.
Informações dadas:
  • Minuendo: \,10010111_2.
  • Subtraendo: \,1011_2.
    A tarefa é efetuar a subtração usando o procedimento do complemento de 2, sem pedir nada mais.

Passo 2

O que é o complemento de 2 e por que usamos aqui (aula rápida)?
  • Para subtrair em binário podemos transformar a operação em uma soma: A - B = A + (\text{complemento de 2 de }B).
  • O complemento de 2 de um número binário é obtido em duas etapas:
    1. Inverter todos os bits (isso chama-se complemento de 1 ou “one’s complement”).
    2. Somar 1 ao resultado (isso produz o complemento de 2).
  • Quando trabalhamos com uma largura fixa de bits (por exemplo 8 bits), devemos alinhar os dois números à mesma largura (preencher com zeros à esquerda se necessário). Após somar A com o complemento de 2 de B:
    • Se houver um carry (um bit extra) fora da largura fixa, esse carry é descartado e o resultado (nos bits restantes) é o resultado correto positivo da subtração.
    • Se não houver carry, o resultado está em representação de complemento de 2 negativa e precisa ser interpretado/convertido.

Passo 3

Alinhar os operandos para a mesma largura. O minuendo tem 8 bits: \,10010111_2.
O subtraendo tem 4 bits: \,1011_2. Preenchemos com zeros à esquerda para 8 bits:
\text{subtraendo (8 bits)} = 00001011_2.

Passo 4

Fazer o complemento de 1 (inverter bits) do subtraendo alinhado:
00001011_2 \xrightarrow{\text{invertendo}} 11110100_2.
Explicando: cada 0 vira 1 e cada 1 vira 0.

Passo 5

Somar 1 ao complemento de 1 para obter o complemento de 2:
11110100_2 + 1_2 = 11110101_2.
Portanto o complemento de 2 de \,00001011_2 é \,11110101_2.

Passo 6

Agora somamos o minuendo com o complemento de 2 do subtraendo:
\begin{array}{r} \;10010111_2\\\\ +\;11110101_2\\hline \end{array}
Vamos fazer a soma bit a bit, do menos significativo (direita) para o mais significativo (esquerda), registrando o carry:
  • Bit 0 (LSB): 1+1=2 → resultado 0, carry 1.
  • Bit 1: 1+0+\text{carry }1 = 2 → resultado 0, carry 1.
  • Bit 2: 1+1+\text{carry }1 = 3 → resultado 1, carry 1.
  • Bit 3: 0+0+\text{carry }1 = 1 → resultado 1, carry 0.
  • Bit 4: 1+1+\text{carry }0 = 2 → resultado 0, carry 1.
  • Bit 5: 0+1+\text{carry }1 = 2 → resultado 0, carry 1.
  • Bit 6: 0+1+\text{carry }1 = 2 → resultado 0, carry 1.
  • Bit 7 (MSB): 1+1+\text{carry }1 = 3 → resultado 1, carry 1 (carry final).
Escrevendo os resultados dos bits (do MSB ao LSB): \,10001100_2. Houve um carry final igual a 1.

Passo 7

Interpretando o carry final: como houve carry de saída quando usamos 8 bits, descartamos esse carry. O resultado nos 8 bits restantes é o valor correto e positivo da subtração:
10001100_2.
Conferência rápida em decimal para ganhar confiança:
  • \,10010111_2 = 128 + 16 + 4 + 2 + 1 = 151_{10}.
  • \,1011_2 = 8 + 2 + 1 = 11_{10}.
  • 151_{10} - 11_{10} = 140_{10}.
  • \,10001100_2 = 128 + 8 + 4 = 140_{10}. Confere!

Resposta

10001100_2

Exercícios relacionados