Efetue as seguintes operações (supondo as mesmas no sistema binário), sem passar pelo sistema decimal:
1111001 div 1011

Passo 1

O enunciado pede para dividir o número binário 11110012 pelo binário 10112 sem passar pelo sistema decimal. O conteúdo aqui é a divisão longa em base 2, que funciona assim: mantemos um resto parcial, trazemos um bit do dividendo por vez, dobramos o resto (equivale a deslocar à esquerda) e somamos o bit trazido; se esse valor for maior ou igual ao divisor, colocamos 1 no quociente e subtraímos o divisor do resto, caso contrário colocamos 0 e não subtraímos nada.

Passo 2

O dividendo tem 7 bits e o divisor tem 4 bits, portanto o quociente terá
7 - 4 + 1 = 4
bits. Vamos chamar de q1,q2,q3,q4 esses bits, e usar uma variável rem inicializada em zero.

Passo 3

Cálculo de q1: trazemos os 4 primeiros bits do dividendo “1111001”, ou seja “1111”.
rem = bin(1111) = 1510.
Como 1510>= 1110 (divisor bin(1011)=1110), temos
q1 = 1, rem 1510 - 1110 = 410;(01002)

Passo 4

Cálculo de q2: trazemos o 5º bit do dividendo, que é 0.
rem 410times2 + 0 = 810;(10002)
Como 810<1110,
q2 = 0, rem;permanece;810;(10002)

Passo 5

Cálculo de q3: trazemos o 6º bit do dividendo, que é 0.
rem 810times2 + 0 = 1610;(100002)
Como 1610>=1110,
q3 = 1, rem 1610 - 1110 = 510;(01012)

Passo 6

Cálculo de q4: trazemos o 7º e último bit do dividendo, que é 1.
rem 510times2 + 1 = 1110;(10112)
Como 1110>=1110,
q4 = 1, rem 1110 - 1110 = 010

Passo 7

Juntando os bits do quociente (q1q2q3q4) obtemos
q = 10112
e o resto final é rem=0.

Resposta

Quociente: 10112
Resto: 0

Exercícios de Livros Relacionados