Algoritmo de multiplicação de Booth: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Linha 45:
 
*O [[produto]] é 1111 0100, que representa -12.
 
 
Encontre -3 × 4:
 
*A = 1101 0000 0
*S = 0011 0000 0
*P = 0000 0100 0
 
*Execute o loop três vezes :
*# P = 0000 010'''0 0'''. Os últimos dois bits são 00.
*#* P = 0000 0010 0. Um deslocamento a direita.
*# P = 0000 001'''0 0'''. Os últimos dois bits são 00.
*#* P = 0000 0001 0. Um deslocamento a direita.
*# P = 0000 000'''1 0'''. Os últimos dois bits são 10.
*#* P = 0011 0001 0. P = P + S.
*#* P = 0001 1000 1. Um deslocamento a direita.
 
*O [[produto]] é 1111 0100, que representa -12.
 
 
A técnica mencionada acima é inadequada quando o multiplicando é um número negativo mais comprido que o que pode ser representado (i.e. se o multiplicando tem 8 bits então esse valor é -128). Uma correção possível para esse problema é adicionar mais um bit a esquerda de A, S e P. Abaixo, nós demonstramos a técnica melhorada multiplicando -8 por 2 usando 4 bits para o multiplicando e o multiplicador: