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).
01010111100 \div 010100= ???

Passo 1

O que o enunciado dá e o que pede:\n
  • Dividendo (em binário): 01010111100 (11 bits).
  • Divisor (em binário): 010100 (6 bits).
  • Pedido: efetuar a divisão em binário e também apresentar em complemento de 2, indicando o bit de sinal. Mostrar todos os cálculos passo a passo.\n
    Observações iniciais que vamos usar (sem resolver ainda): \n
  • Ao indicar o bit de sinal, o primeiro bit (mais à esquerda) é o bit de sinal: 0 significa número positivo.
  • Para o complemento de 2, a representação depende do número de bits escolhidos; para números positivos a representação em complemento de 2 coincide com a escrita binária com bit de sinal 0.
  • Vou fazer a divisão por algoritmo de divisão binária (divisão longa em binário), mostrando subtrações e os bits do quociente, e depois apresentar as representações em complemento de 2 (com bit de sinal).

Passo 2

Converter os números para decimal (verificação rápida e para entender o resultado esperado).\n
Dividendo 01010111100 (bits das posições 10 a 0):
01010111100 = 0\cdot2^{10} + 1\cdot2^{9} + 0\cdot2^{8} + 1\cdot2^{7} + 0\cdot2^{6} + 1\cdot2^{5} + 1\cdot2^{4} + 1\cdot2^{3} + 1\cdot2^{2} + 0\cdot2^{1} + 0\cdot2^{0}
= 2^{9}+2^{7}+2^{5}+2^{4}+2^{3}+2^{2} = 512+128+32+16+8+4 = 700.
Divisor 010100 (bits das posições 5 a 0):
010100 = 0\cdot2^{5} + 1\cdot2^{4} + 0\cdot2^{3} + 1\cdot2^{2} + 0\cdot2^{1} + 0\cdot2^{0}
= 2^{4}+2^{2} = 16+4 = 20.
Então em decimal estamos calculando 700 \div 20.

Passo 3

Divisão em decimal para checar o quociente e resto:
700 \div 20 = 35 \quad\text{com resto}\quad 0,
pois 20\cdot35 = 700. Portanto o quociente decimal esperado é 35 e o resto é 0. Agora vamos obter exatamente esses valores por divisão longa em binário (passo a passo).

Passo 4

Preparação para a divisão binária longa:\n
  • O divisor tem 6 bits, logo na divisão longa consideramos janelas de 6 bits do dividendo (começando pelos 6 bits mais à esquerda).
  • O número de bits do quociente será 11-6+1 = 6 bits (do bit mais significativo do quociente q_5 ao menos significativo q_0).
  • Notação: cada passo mostro o fragmento atual (remainder window) em 6 bits, comparo com o divisor 010100, decido q_i\in\{0,1\}, e se for 1 subtraio.
O divisor em binário (para subtrações) é
\text{Divisor} = 010100 \quad(\text{que é }20).é

Passo 5

Divisão longa binária passo a passo.\n
Começamos com os 6 bits mais à esquerda do dividendo: bits 10 a 5 que são 010101.\n
  1. Janela inicial: 010101 (isto é 21). Como 21 \ge 20, temos q_5 = 1. Subtração:
010101 - 010100 = 000001.
Resto atual: 000001 (decimal 1).
  1. Trazer o próximo bit (bit 4 do dividendo, que é 1). Faz-se shift left do resto e acrescenta o bit trazido: novo fragmento
(000001)\times2 + 1 = 000011 \quad(\text{decimal }3).
Como 3 < 20, q_4 = 0. (Nenhuma subtração.)
  1. Trazer o próximo bit (bit 3 = 1):
(000011)\times2 + 1 = 000111 \quad(\text{decimal }7).
Como 7 < 20, q_3 = 0.
  1. Trazer o próximo bit (bit 2 = 1):
(000111)\times2 + 1 = 001111 \quad(\text{decimal }15).
Como 15 < 20, q_2 = 0.
  1. Trazer o próximo bit (bit 1 = 0):
(001111)\times2 + 0 = 011110 \quad(\text{decimal }30).
Agora 30 \ge 20, então q_1 = 1. Subtrai-se:
011110 - 010100 = 001010 \quad(\text{decimal }10).
Resto atual: 001010 (decimal 10).
  1. Trazer o último bit (bit 0 = 0):
(001010)\times2 + 0 = 010100 \quad(\text{decimal }20).
Aqui 20 \ge 20, portanto q_0 = 1. Subtrai-se:
010100 - 010100 = 000000.
Resto final: 000000 (decimal 0).
Juntando os bits do quociente q_5q_4q_3q_2q_1q_0 obtemos
q = 1\;0\;0\;0\;1\;1 = 100011.
Em decimal 100011_2 = 32 + 2 + 1 = 35. Resto 000000_2 = 0. Isso confirma o resultado decimal da verificação.

Passo 6

Conversões finais e observações sobre bits de sinal e complemento de 2:\n
  • Resultado (binário puro, sem considerar complemento de 2): quociente 100011 (6 bits), resto 000000 (6 bits). Ambos positivos.
  • Bit de sinal dos operandos originais (já presentes nas palavras dadas): \text{dividendo }01010111100 tem bit de sinal igual a 0 (número positivo). \text{divisor }010100 tem bit de sinal igual a 0 (positivo).
Agora o complemento de 2 (explicação e aplicação):\n
  • Regra do complemento de 2 (lembrando): para representar um número inteiro em complemento de 2 com N bits, o bit mais à esquerda é o bit de sinal; para um número positivo a representação é simplesmente o binário com zeros à esquerda até completar N bits; para um número negativo inverte-se todos os bits do módulo e soma-se 1.
  • Aqui ambos os números dados são positivos (bit de sinal 0), então a representação em complemento de 2 com um número de bits suficiente coincide com a escrita binária com bit de sinal 0.
  • Atenção importante: o quociente decimal 35 exige pelo menos 6 bits para a magnitude (pois 35_{10}=100011_2), mas em representação em complemento de 2 se usarmos apenas 6 bits totais o intervalo representável é -32 a +31. Assim, 100011 como cadeia de 6 bits em complemento de 2 seria interpretado como negativo. Por isso, ao escrever o quociente em complemento de 2 devemos reservar um bit de sinal adicional (usar 7 bits) para poder representar +35.\n
  • Representações em complemento de 2 com bit de sinal explicitado:\n
    • Dividendo (já 11 bits, bit de sinal 0): \underbrace{0}_{\text{bit de sinal}}\;1010111100 (igual à entrada). Em complemento de 2 com 11 bits é o mesmo: 01010111100.
    • Divisor (6 bits, bit de sinal 0): \underbrace{0}_{\text{bit de sinal}}\;10100 (ou simplesmente 010100 como dado). Em complemento de 2 com 6 bits é 010100.
    • Quociente: magnitude 100011. Para ter bit de sinal 0 e não ser interpretado como negativo, representamos em 7 bits: \underbrace{0}_{\text{bit de sinal}}\;100011, isto é 0100011 (7 bits no total). Em complemento de 2 com 7 bits isso corresponde a +35.
    • Resto: 000000. Em complemento de 2 com 6 ou 7 bits é 000000 (ou com bit de sinal: 0\,000000).

Resposta

Binário: quociente 100011, resto 000000. Bit de sinal: dividendo 0, divisor 0, quociente 0.\n
Complemento de 2 (com bit de sinal explicitado e largura suficiente): quociente 0\,100011 (7 bits), resto 0\,000000.

Exercícios relacionados