A system, method, and computer product for high-speed multiplication of
binary numbers. A multiplier X is first encoded, and the encoded
multiplier is then used in a multiplication process that yields the
product. The encoding is performed in a manner that allows the actual
multiplication process to proceed quickly. X is copied into a variable Z.
Z is then manipulated to form the coded version of the multiplier. The
bits of the multiplier X are read two at a time, starting with the least
significant two bits. If the bit pair X.sub.i+1X.sub.i is equal to 11,
then 1 is added to Z.sub.i+2. The process continues for successive
non-overlapping pairs of bits, until the most significant three bits of X
are reached. These last three bits are encoded using a table look-up
process.