Supondo números binários sem sinal, realize as seguintes subtrações:
11000_{2}-10111_{2}

Passo 1

O que o enunciado pede e o que foi dado:
  • Pede para realizar a subtração entre números binários sem sinal.
  • Os dois números fornecidos são \,11000_2 (minuendo) e \,10111_2 (subtraendo).
  • Devemos calcular \,11000_2 - 10111_2 e dar a resposta em binário (pode também apresentar checagem em decimal).

Passo 2

Noções essenciais que vou usar (explicação didática):
  • Cada dígito de um número binário tem peso igual a uma potência de 2. O bit mais à direita tem peso 2^0, o próximo 2^1, e assim por diante. Por exemplo, para \,11000_2 os pesos são:
    1\cdot 2^4 + 1\cdot 2^3 + 0\cdot 2^2 + 0\cdot 2^1 + 0\cdot 2^0.
    Isso é só para sabermos o valor decimal e poder checar o resultado no final.
  • Regras básicas da subtração bit a bit (sem sinal):
    • \,0-0=0 (sem empréstimo)
    • \,1-0=1 (sem empréstimo)
    • \,1-1=0 (sem empréstimo)
    • \,0-1 não dá diretamente; precisa-se “emprestar” 1 da posição imediatamente à esquerda. Em base 2, emprestar 1 equivale a adicionar 2 (decimal) à posição atual, porque um “1” na posição seguinte vale 2 unidades da posição atual.
  • Empréstimo em cadeia: se a posição imediatamente à esquerda for 0, é preciso buscar um 1 mais à esquerda; esse 1 vira 0, todos os zeros entre ele e a posição que recebe o empréstimo tornam-se 1 e a posição que precisa do empréstimo passa a ter valor aumentado (em decimal) por 2. Vou mostrar isso passo a passo.

Passo 3

Alinhar os números em colunas (bits) e marcar índices para facilitar (índice 0 é LSB, à direita):
  • Minuendo: \,11000_2
  • Subtraendo: \,10111_2
Escrevendo por colunas (do bit mais significativo ao menos significativo):
\begin{array}{c c c c c} \text{índice} & 4 & 3 & 2 & 1 & 0 \\\ \hline \text{minuendo} & 1 & 1 & 0 & 0 & 0 \\\ \text{subtraendo} & 1 & 0 & 1 & 1 & 1 \end{array}
(Vou trabalhar da direita para a esquerda: índices 0,1,2,3,4.)

Passo 4

Subtração no bit de índice \,0 (LSB): calcular \,0 - 1.
  • A operação direta \,0 - 1 não é possível sem empréstimo. Então precisamos emprestar da posição à esquerda ( índice\;1í), mas lá também temos \,0. Assim, procuramos mais à esquerda: no índice \,2 também é \,0. No índice \,3 há um \,1. Portanto faremos um empréstimo em cadeia a partir do índice \,3.
  • Como funciona o empréstimo em cadeia: o \,1 no índice \,3 vira \,0; os zeros entre ele e o índice \,0 (índices \,2 e \,1) passam a ser \,1 depois do processo de “passar o empréstimo”; a posição índice \,0 recebe efetivamente 2 (decimal) antes de subtrair. Escrito em passos:
    • Antes: índices 3,2,1,0 = 1,0,0,0.
    • Depois do empréstimo: índices 3,2,1,0 = 0,1,1,2 (onde o 2 é apenas o valor decimal disponível na posição 0 para permitir a subtração; em bits isso significa que agora podemos fazer 2-1).
  • Agora fazemos a subtração no índice 0:
    2 - 1 = 1.
    Então o bit resultante em índice 0 é \,1.

Passo 5

Agora seguimos para o índice \,1:
  • Após o empréstimo, o bit do minuendo no índice \,1 ficou \,1 (veja passo anterior). Subtraímos o bit do subtraendo no índice \,1, que é \,1. 1 - 1 = 0.Não é necessário novo empréstimo. Resultado no índice \,1 é \,0.

Passo 6

Índice \,2:
  • Depois do empréstimo em cadeia, o minuendo no índice \,2 ficou \,1. O subtraendo no índice \,2 é \,1. 1 - 1 = 0.Resultado no índice \,2 é \,0. Sem empréstimo.

Passo 7

Índice \,3:
  • No passo do empréstimo, o bit no índice \,3 foi reduzido de \,1 para \,0. O subtraendo no índice \,3 é \,0. 0 - 0 = 0.Resultado no índice \,3 é \,0.

Passo 8

Índice \,4 (mais significativo):
  • Minuendo no índice \,4 é \,1. Subtraendo no índice \,4 é \,1. 1 - 1 = 0.Resultado no índice \,4 é \,0.

Passo 9

Montando todos os bits resultado do índice \,4 até \,0:
  • Resultado por colunas: índices 4,3,2,1,0 = 0,0,0,0,1.
  • Ou seja, resultado binário completo com cinco bits: \,00001_2.
  • Como normalmente não escrevemos zeros à esquerda, o resultado final é \,1_2.

Passo 10

Checagem em decimal para ter certeza (conferência didática):
  • Converter \,11000_2 para decimal: 1\cdot 2^4 + 1\cdot 2^3 + 0\cdot 2^2 + 0\cdot 2^1 + 0\cdot 2^0 = 16 + 8 + 0 + 0 + 0 = 24.
  • Converter \,10111_2 para decimal: 1\cdot 2^4 + 0\cdot 2^3 + 1\cdot 2^2 + 1\cdot 2^1 + 1\cdot 2^0 = 16 + 0 + 4 + 2 + 1 = 23.
  • Subtração decimal: 24 - 23 = 1, que em binário é \,1_2. Confere com o resultado obtido.

Resposta

1_2

Exercícios relacionados