Dados os valores \mathrm{X}=1001111_{2} e \mathrm{Y}=111_{2}, realize as operações abaixo. Apresente as soluções passo a passo.
a. \quad X+Y=
b. \quad X-Y=
c. \mathrm{X} * \mathrm{Y}=

Passo 1

O enunciado dá os números binários \mathrm{X}=1001111_{2} e \mathrm{Y}=111_{2} e pede:
a. \mathrm{X}+\mathrm{Y}=\;?
b. \mathrm{X}-\mathrm{Y}=\;?
c. \mathrm{X}*\mathrm{Y}=\;?
As informações relevantes são: os dois números em base 2 e as três operações básicas a realizar.

Passo 2

Vamos começar ensinando como somar em binário (fórmula rápida): cada coluna soma bits e um possível carry (vai-um) da coluna anterior. Regras básicas por coluna:
\begin{aligned} 0+0 &= 0 \\\\ 0+1 &= 1 \\\\ 1+1 &= 10_2\quad(\text{resultado }0\text{ e carry }1)\\\\ 1+1+1 &= 11_2\quad(\text{resultado }1\text{ e carry }1) \end{aligned}
Ou seja, quando somamos dois 1 geramos 0 na coluna e transportamos 1 para a próxima coluna; se já houver um carry, ajustamos conforme a última linha.

Passo 3

Alinhando \mathrm{X} e \mathrm{Y} à direita para somar:
\mathrm{X}=1001111_2
\mathrm{Y}=0000111_2 \quad(\text{coloquei zeros à esquerda para alinhar})à
Agora somamos coluna a coluna do bit menos significativo (direita) para o mais significativo (esquerda), anotando os carries.
Fazendo as somas por coluna (escrevo coluna: X + Y + carry_in \Rightarrow resultado, carry_out):
  • Coluna 0 (LSB): 1+1+0=10_2\Rightarrow resultado 0, carry 1.
  • Coluna 1: 1+1+1=11_2\Rightarrow resultado 1, carry 1.
  • Coluna 2: 1+1+1=11_2\Rightarrow resultado 1, carry 1.
  • Coluna 3: 1+0+1=10_2\Rightarrow resultado 0, carry 1.
  • Coluna 4: 0+0+1=1_2\Rightarrow resultado 1, carry 0.
  • Coluna 5: 0+0+0=0_2\Rightarrow resultado 0, carry 0.
  • Coluna 6 (MSB): 1+0+0=1_2\Rightarrow resultado 1, carry 0.
Lendo os resultados do MSB para o LSB obtemos \;1010110_2.

Passo 4

Verificação decimal rápida para ganhar confiança: converto \mathrm{X} e \mathrm{Y} para decimal:
\mathrm{X}=1\cdot2^{6}+0\cdot2^{5}+0\cdot2^{4}+1\cdot2^{3}+1\cdot2^{2}+1\cdot2^{1}+1\cdot2^{0}=64+8+4+2+1=79
\mathrm{Y}=1\cdot2^{2}+1\cdot2^{1}+1\cdot2^{0}=4+2+1=7
79+7=86
Converto \;1010110_2 para decimal para checar:
1\cdot2^{6}+0\cdot2^{5}+1\cdot2^{4}+0\cdot2^{3}+1\cdot2^{2}+1\cdot2^{1}+0\cdot2^{0}=64+16+4+2=86
Confere. Logo \mathrm{X}+\mathrm{Y}=1010110_2.

Passo 5

Agora subtração em binário: regras básicas por coluna (subtraindo b de a, com possível borrow):
\begin{aligned} 0-0 &= 0 \\\\ 1-0 &= 1 \\\\ 1-1 &= 0 \\\\ 0-1 &= 1\\ (\text{com borrow de 1 da coluna à esquerda}) \end{aligned}à
Quando fazemos um borrow, a coluna à esquerda perde 1 e a coluna atual ganha 2 em base 2 (isto é, passa a valer 10_2).

Passo 6

Vamos calcular \mathrm{X}-\mathrm{Y}. Alinhamos novamente:
\mathrm{X}=1001111_2
\mathrm{Y}=0000111_2
Subtraindo coluna a coluna do LSB para o MSB, anotando borrows:
  • Coluna 0: 1-1=0. Nenhum borrow.
  • Coluna 1: 1-1=0. Nenhum borrow.
  • Coluna 2: 1-1=0. Nenhum borrow.
  • Coluna 3: 1-0=1. Nenhum borrow.
  • Coluna 4: 0-0=0. Nenhum borrow.
  • Coluna 5: 0-0=0. Nenhum borrow.
  • Coluna 6: 1-0=1. Nenhum borrow.
Lendo do MSB ao LSB obtemos \;1001000_2.

Passo 7

Verificação decimal da subtração:
79-7=72
Converto \;1001000_2 para decimal:
1\cdot2^{6}+0\cdot2^{5}+0\cdot2^{4}+1\cdot2^{3}+0\cdot2^{2}+0\cdot2^{1}+0\cdot2^{0}=64+8=72
Confere. Logo \mathrm{X}-\mathrm{Y}=1001000_2.

Passo 8

Agora multiplicação. Uma boa estratégia quando multiplicamos por \;111_2 (que é 7 em decimal) é usar deslocamentos e soma:
\mathrm{Y}=111_2 = 1\cdot2^2+1\cdot2^1+1\cdot2^0
Logo
\mathrm{X}\times\mathrm{Y}=\mathrm{X}\times(2^2+2^1+2^0)=\mathrm{X}\ll 2\;+\;\mathrm{X}\ll 1\;+\;\mathrm{X}
onde \mathrm{X}\ll k significa \mathrm{X} deslocado à esquerda k posições (multiplicado por 2^k em decimal).

Passo 9

Calculo os termos deslocados (em binário):
\mathrm{X}=1001111_2
\mathrm{X}\ll 1 =10011110_2
\mathrm{X}\ll 2 =100111100_2
Agora somo essas três linhas (alinhadas à direita):
\begin{array}{r} \;\;\;100111100_2\\\\ +\;\;\;010011110_2\\\\ +\;\;\;001001111_2\\\ \hline \;\;1000101001_2 \end{array}
(Observe que eu escrevi as três linhas com padding à esquerda para alinhamento: \mathrm{X}\ll2, \mathrm{X}\ll1 e \mathrm{X}.)

Passo 10

Verificação decimal da multiplicação:
79\times7=553
Converto \;1000101001_2 para decimal:
1\cdot2^{9}+0\cdot2^{8}+0\cdot2^{7}+0\cdot2^{6}+1\cdot2^{5}+0\cdot2^{4}+1\cdot2^{3}+0\cdot2^{2}+0\cdot2^{1}+1\cdot2^{0}
=512+32+8+1=553
Confere. Logo \mathrm{X}\times\mathrm{Y}=1000101001_2.

Resposta

a. 1010110_2
b. 1001000_2
c. 1000101001_2

Exercícios relacionados