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

Passo 1

O enunciado pede para dividir em base 2 o número
100101112
pelo divisor
112
sem converter para decimal. O conteúdo aqui é o algoritmo de divisão binária, que funciona exatamente como a divisão longa em base 10, mas só com dígitos 0 e 1. Vamos manter um “resto parcial” que a cada passo multiplica por 2 (desloca à esquerda) e soma o próximo bit do dividendo, comparando com o divisor para definir o próximo bit do quociente.

Passo 2

Definimos:
D é o dividendo de 8 bits, D=(d1d2cdots d8)2=100101112.
B é o divisor de 2 bits, B=(11)2.
– Um registro r inicia em ;0.
– Para cada i de 1 a 8, fazemos:
1. r 2cdot r + di (trazemos um bit).
2. Se r>= B, então q,i-1=1 e r r-B; senão q,i-1=0.
Os bits do quociente serão q1,q2,dots,q7, pois temos 8 iterações menos 1 (comprimento de B).

Passo 3

Aplicando o algoritmo e anotando r (resto) e qj:
i di resto antes de subtr. comparação r>= B? q,i-1 resto após subtr.
1 1 r=0to1 não ( 1< 3) 1
2 0 r=1to2 não ( 2< 3) 0 2
3 0 r=2to4 sim ( 4>= 3) 1 4 - 3 = 1
4 1 r=1to3 sim ( 3>= 3) 1 3 - 3 = 0
5 0 r=0to0 não ( 0< 3) 0 0
6 1 r=0to1 não ( 1< 3) 0 1
7 1 r=1to3 sim ( 3>= 3) 1 3 - 3 = 0
8 1 r=0to1 não ( 1< 3) 0 1
Aqui, nos interessa q1 até q7 (para i=2 até 8), e o resto final é r=1.

Passo 4

Os bits de quociente calculados foram
q1q2cdots q7 = 0,1,1,0,0,1,0
Eliminando um zero à esquerda, ficamos com
1100102
como quociente, e o resto é
12

Resposta

Quociente: 1100102
Resto: 12

Exercícios de Livros Relacionados