Content deleted Content added
→Pentium multiplier: == Pentium multiplier implementation == |
→How it works: tex tables (arrays with lines) |
||
Line 65:
==How it works==
Consider a positive multiplier consisting of a block of 1s surrounded by 0s. For example, 00111110. The product is given by:
<math display="block"> M \times \
where M is the multiplicand. The number of operations can be reduced to two by rewriting the same as
<math display="block"> M \times \
In fact, it can be shown that any sequence of 1s in a binary number can be broken into the difference of two binary numbers:
Line 77:
This scheme can be extended to any number of blocks of 1s in a multiplier (including the case of a single 1 in a block). Thus,
<math display="block"> M \times \
<math display="block"> M \times \
Booth's algorithm follows this old scheme by performing an addition when it encounters the first digit of a block of ones (0 1) and subtraction when it encounters the end of the block (1 0). This works for a negative multiplier as well. When the ones in a multiplier are grouped into long blocks, Booth's algorithm performs fewer additions and subtractions than the normal multiplication algorithm.
|