Supondo números binários sem sinal, realize as seguintes subtrações:
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
(minuendo) e (subtraendo). - Devemos calcular
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
, o próximo , e assim por diante. Por exemplo, para os pesos são: 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):
-
(sem empréstimo) -
(sem empréstimo) -
(sem empréstimo) -
não dá diretamente; precisa-se “emprestar” 1 da posição imediatamente à esquerda. Em base 2, emprestar 1 equivale a adicionar (decimal) à posição atual, porque um “1” na posição seguinte vale 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
. 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:
- Subtraendo:
Escrevendo por colunas (do bit mais significativo ao menos significativo):
(Vou trabalhar da direita para a esquerda: índices
.)
Passo 4
Subtração no bit de índice
(LSB): calcular
.
-
A operação direta
não é possível sem empréstimo. Então precisamos emprestar da posição à esquerda ( ), mas lá também temos . Assim, procuramos mais à esquerda: no índice também é . No índice há um . Portanto faremos um empréstimo em cadeia a partir do índice . -
Como funciona o empréstimo em cadeia: o
no índice vira ; os zeros entre ele e o índice (índices e ) passam a ser depois do processo de “passar o empréstimo”; a posição índice recebe efetivamente (decimal) antes de subtrair. Escrito em passos: - Antes: índices
= . - Depois do empréstimo: índices
= (onde o é apenas o valor decimal disponível na posição 0 para permitir a subtração; em bits isso significa que agora podemos fazer ).
- Antes: índices
-
Agora fazemos a subtração no índice
: Então o bit resultante em índiceé .
Passo 5
Agora seguimos para o índice
:
- Após o empréstimo, o bit do minuendo no índice
ficou (veja passo anterior). Subtraímos o bit do subtraendo no índice , que é . Não é necessário novo empréstimo. Resultado no índice é .
Passo 6
Índice
:
- Depois do empréstimo em cadeia, o minuendo no índice
ficou . O subtraendo no índice é . Resultado no índice é . Sem empréstimo.
Passo 7
Índice
:
- No passo do empréstimo, o bit no índice
foi reduzido de para . O subtraendo no índice é . Resultado no índice é .
Passo 8
Índice
(mais significativo):
- Minuendo no índice
é . Subtraendo no índice é . Resultado no índice é .
Passo 9
Montando todos os bits resultado do índice
até
:
- Resultado por colunas: índices
. - Ou seja, resultado binário completo com cinco bits:
. - Como normalmente não escrevemos zeros à esquerda, o resultado final é
.
Passo 10
Checagem em decimal para ter certeza (conferência didática):
- Converter
para decimal: - Converter
para decimal: - Subtração decimal:
, que em binário é . Confere com o resultado obtido.