Resolva as operações abaixo no sistema que se pede (MOSTRE TODOS OS CÁLCULOS):
Realize em binário e complemento de 2 as operações abaixo (LEMBRE-SE DE INDICAR O BIT DE SINAL).
01001110110 \div 0101000= ???

Passo 1

O que o enunciado pede e quais dados ele dá.
  • Enunciado: 01001110110 \div 0101000 =\; ?
  • Dados que eu peguei do enunciado:
    • Dividendo (com bit de sinal na frente): 01001110110.
    • Divisor (com bit de sinal na frente): 0101000.
  • O enunciado exige que eu realize a operação em binário e também indique o complemento de 2 (ou seja, indicar o bit de sinal e a representação em complemento de 2).
  • Observação importante que vou manter durante a resolução: quando um número tem bit de sinal igual a 0 ele é positivo; quando é 1 o número seria negativo e, para obter o valor negativo em complemento de 2, faz-se o método “inverter bits + 1”. Aqui ambos têm bit de sinal 0, logo são números positivos.

Passo 2

Converter as palavras binárias para valores decimais para saber o resultado esperado (verificação rápida).
  • Peguei da string do dividendo 01001110110. Convertendo para decimal: 01001110110 = 0\cdot 2^{10}+1\cdot 2^{9}+0\cdot 2^{8}+0\cdot 2^{7}+1\cdot 2^{6}+1\cdot 2^{5}+1\cdot 2^{4}+0\cdot 2^{3}+1\cdot 2^{2}+1\cdot 2^{1}+0\cdot 2^{0}=630.
  • Peguei da string do divisor 0101000. Convertendo para decimal: 0101000 = 0\cdot 2^{6}+1\cdot 2^{5}+0\cdot 2^{4}+1\cdot 2^{3}+0\cdot 2^{2}+0\cdot 2^{1}+0\cdot 2^{0}=32+8=40.
  • Divisão em decimal para conferir: 630 \div 40 = 15 com resto 30, pois 15\cdot 40 = 600 e 630-600=30.
  • Expectativa: quociente =15 e resto =30. Em binário: 15 = 1111 e 30 = 11110. Vou agora fazer a divisão passo a passo em binário para mostrar o procedimento e confirmar isso.

Passo 3

Breve explicação do método de divisão binária que vou usar (para a prova).
  • Estratégia (muito usada em prova): alinhar o divisor multiplicando-o por potências de dois (shifts à esquerda) até ficar o maior múltiplo que ainda seja ≤ dividendo; subtrair; repetir com o restante até alcançar resto menor que o divisor.
  • Em termos práticos: encontrar o maior s tal que \text{divisor}\times 2^{s} \le \text{dividendo}. Colocar 1 no bit 2^{s} do quociente, subtrair e repetir para s-1, s-2,\dots,0.
  • Observação: multiplicar por 2^{s} em binário equivale a deslocar o padrão de bits do divisor s posições à esquerda (acrescentar s zeros à direita).

Passo 4

Encontrar o maior shift s e começar a divisão por subtrações (com explicações).
  • Divisor decimal =40. Testo potências de dois: 40\cdot 2^{4}=640>630,\qquad 40\cdot 2^{3}=320\le 630.Logo o maior shift é s=3.
  • Isso indica que o quociente terá um bit 1 em 2^{3} (isto é, o bit correspondente a 8) se subtrairmos esse múltiplo.
  • Vou fazer as subtrações em binário alinhando os bits (mostrando também o valor decimal para conferência).

Passo 5

Primeira subtração: subtrair \text{divisor}\times 2^{3}=320 do dividendo.
  • Dividendo (11 bits): 01001110110 (peguei do enunciado), que é 630.
  • Divisor original (7 bits): 0101000 (peguei do enunciado) = 40.
  • Divisor deslocado 3 posições à esquerda (padronizando para 11 bits): 0101000\ll 3 = 00101000000. (Expliquei: acrescentei 3 zeros à direita e preenchi à esquerda com zeros para ficar com 11 bits.)
  • Escrevendo a subtração (binário e decimal): 01001110110_{(2)} \;-\; 00101000000_{(2)} \;=\; 00100110110_{(2)}.Em decimal: 630 - 320 = 310.
  • Conclusão desta etapa: coloquei 1 no bit de 2^{3} do quociente.

Passo 6

Segunda subtração: subtrair \text{divisor}\times 2^{2}=160 do restante.
  • Resto atual (11 bits): 00100110110 (peguei do cálculo anterior) = 310.
  • Divisor deslocado 2 posições: 0101000\ll 2 = 00010100000 (11 bits) = 160.
  • Subtração: 00100110110_{(2)} \;-\; 00010100000_{(2)} \;=\; 00010010110_{(2)}.Em decimal: 310 - 160 = 150.
  • Conclusão: coloquei 1 no bit de 2^{2} do quociente.

Passo 7

Terceira subtração: subtrair \text{divisor}\times 2^{1}=80.
  • Resto atual: 00010010110_{(2)} = 150.
  • Divisor deslocado 1 posição: 0101000\ll 1 = 00001010000_{(2)} = 80.
  • Subtração: 00010010110_{(2)} \;-\; 00001010000_{(2)} \;=\; 00001000110_{(2)}.Em decimal: 150 - 80 = 70.
  • Conclusão: coloquei 1 no bit de 2^{1} do quociente.

Passo 8

Quarta subtração: subtrair \text{divisor}\times 2^{0}=40.
  • Resto atual: 00001000110_{(2)} = 70.
  • Divisor sem deslocamento (padronizado 11 bits): 0101000 = 00000101000_{(2)} = 40.
  • Subtração: 00001000110_{(2)} \;-\; 00000101000_{(2)} \;=\; 00000011110_{(2)}.Em decimal: 70 - 40 = 30.
  • Conclusão: coloquei 1 no bit de 2^{0} do quociente.

Passo 9

Montagem do quociente e resto finais e verificação.
  • Colocando os bits que marcamos nos deslocamentos s=3,2,1,0 (todos deram 1), o quociente em binário é: \text{quociente} = 1111_{(2)}.Em decimal: 1\cdot 2^{3}+1\cdot 2^{2}+1\cdot 2^{1}+1\cdot 2^{0}=8+4+2+1=15, que bate com a verificação decimal.
  • O resto final em binário (11 bits que sobrou) é: \text{resto} = 00000011110_{(2)} = 30_{(10)}.Confere com a verificação decimal 630 - 15\cdot 40 = 30.

Passo 10

Representação em complemento de 2 e indicação do bit de sinal (explicação didática curta).
  • Relembrando: em complemento de 2, o bit mais à esquerda é o bit de sinal: 0 = positivo, 1 = negativo. Para números positivos a representação em complemento de 2 é igual à sua representação binária com zeros à esquerda para completar o tamanho de palavra desejado.
  • Aqui dividend e divisor tinham bit de sinal 0, ou seja, são positivos. O quociente e o resto também são positivos, então suas representações em complemento de 2 (numa mesma largura de palavra que usei para o dividendo, 11 bits) são iguais às suas representações binárias com zeros à esquerda.
  • Exemplo didático (se precisasse representar um número negativo): para obter -N em complemento de 2 com largura w: escrever N em w bits, inverter todos os bits e somar 1. (Não necessário aqui porque não há números negativos no problema.)
  • Portanto, usando 11 bits (mesma largura do dividendo) para uniformizar:
    • Quociente 15 em 11 bits: 00000001111_{(2)}. Bit de sinal = 0.
    • Resto 30 em 11 bits: 00000011110_{(2)}. Bit de sinal = 0.

Resposta

Quociente (binário, com bit de sinal): 0\,1111 = complemento de 2 (11 bits): 00000001111
Resto (binário, com bit de sinal): 0\,11110 = complemento de 2 (11 bits): 00000011110

Exercícios relacionados