Metodo de booth
Se x é a representação binária em complemento de dois do multiplicando e y a do multiplicador : * Desenhe uma grade com 3 linhas, com x + y + 1 colunas e um espaço para cada bit. Chame as linhas de A (adição), S (subtração), e P (produto). * Preencha os primeiros x bits de cada linha com: * o A: o multiplicando * o S: o negativo do multiplicando * o P: zeros * Preencha os próximos y bits de cada linha com : * o A: zeros * o S: zeros * o P: o multiplicador * Coloque zero no último bit de cada linha. * Repita o procedimento abaixo 'número de bits de y' vezes: * 1. Se os dois últimos bits do produto são: * o 00 ou 11: não faça nada. * o 01: P = P + A. Ignore qualquer estouro. * o 10: P = P + S. Ignore qualquer estouro. * 2. Desloque P para a direita um bit. Neste passo, o sinal de P deve ser preservado, isto é, se o bit mais significativo for 1, então após o deslocamento o novo bit mais significativo também deve ser 1. Caso o bit mais significativo for 0, após o deslocamento o novo bit mais significativo deve também ser 0. * Descarte o primeiro (nós contamos da direita para esquerda quando lidamos com bits) bit do produto para o resultado final.
Exemplo
Encontre 3 × (-4): * A = 0011 0000 0 * S = 1101 0000 0 * P = 0000 1100 0 * Execute o loop quatro vezes : 1. P = 0000 1100 0. Os últimos dois bits são 00. * P = 0000 0110 0. Um deslocamento a direita. 2. P = 0000 0110 0. Os últimos dois bits são 00. * P = 0000 0011 0. Um deslocamento a direita. 3. P = 0000 0011 0. Os últimos dois bits são 10. * P = 1101 0011 0. P = P + S. * P = 1110 1001 1. Um deslocamento a direita. 4. P = 1110 1001 1. Os últimos dois bits são 11. * P = 1111 0100 1. Um deslocamento a direita. * O produto é 1111 0100, que representa -12.
A técnica mencionada acima é inadequada