Estou replicando aqui, uma dica muito boa dada pelo Wagner lip em seu blog.
Consideremos que a nossa multiplicação tenha dois operadores, A e B.
Digamos que A=1537 e B=723
O resultado esperado é 1527 x 723 = 1104021
Vamos nomear uma variável R como sendo o resultado.
1) R=0
2) Shift A um bit para a direita
3) Se ocorreu carry bit, ou seja, A “era” impar, some B em R
4) Shift B um bit para a esquerda
5) Repita 2-4 até A ser zero.
Consideremos que a nossa multiplicação tenha dois operadores, A e B.
Digamos que A=1537 e B=723
O resultado esperado é 1527 x 723 = 1104021
Vamos nomear uma variável R como sendo o resultado.
1) R=0
2) Shift A um bit para a direita
3) Se ocorreu carry bit, ou seja, A “era” impar, some B em R
4) Shift B um bit para a esquerda
5) Repita 2-4 até A ser zero.
Pronto, R contém o resultado de A x B
A técnica é somar o valor atual de B em R, só quando A é impar, e desprezar B quando A é par.
Duvida? Veja:
Duvida? Veja:
A B R
Isso é muito simples, não é
Nenhum comentário:
Postar um comentário