Binary Multiplication. Any multiplication can be re-expressed as a series of additions. For example,...

Preview:

Citation preview

Binary Multiplication

Binary Multiplication

Any multiplication can be re-expressed as a series of additions.

For example, 7 * 3 (seven times three) is simply the sum of 3 sevens.

7 * 3 = 7 + 7 + 7Since we already know how to perform

addition, binary multiplication becomes easy.

Binary Multiplication

7

* 3

Binary Multiplication

7 0111

* 3

Binary Multiplication

7 0111

* 3 + 0111

+ 0111

Binary Multiplication

7 0111

* 3 + 0111

1110

+ 0111

Binary Multiplication

7 0111

* 3 + 0111

1110

+ 0111

10101

Binary Multiplication

The multiplication of large values will take many such additions, but the machine doesn’t mind.

Even so, we look for faster more efficient techniques, and there is one available.

It’s based on the Algebraic property called Distribution.

Binary Multiplication

The Distribution Property can be expressed this way:

a * (x + y) = a * x + a * yAny number can be expressed as the sum of

other numbers:106 * 37 = 106 * (30 + 7) = (106 * 30) + (106 * 7)

Binary Multiplication

The other insight necessary to optimize multiplication regards multiplying a number by its base.

In Decimal, multiplying anything by 10 is easy - simply shift the digits to the left, and pad with a zero.

975 * 10 = 9750

Binary Multiplication

This is true in any number system.

In Binary, for example:

001 represents 1

010 represents 2

100 represents 4

Binary Multiplication

This is true in any number system.

In Binary, for example:

001 represents 1

010 represents 2

100 represents 4

Each shift/pad doubles the value.

Binary Multiplication

Now reconsider this problem:

106 * 37 = ?

Binary Multiplication

Now reconsider this problem:

106 * 37 = ?Expressed as this distribution:

106 * (32 + 4 + 1)

Binary Multiplication

Now reconsider this problem:

106 * 37 = ?Expressed as this distribution:

106 * (32 + 4 + 1)

= 106 * 32 + 106 * 4 + 106 * 1

Binary Multiplication

? = 106 * 32 + 106 * 4 + 106 * 1

Binary Multiplication

? = 106 * 32 + 106 * 4 + 106 * 1

32 = (25)

Binary Multiplication

? = 106 * 32 + 106 * 4 + 106 * 1

32 = (25)

4 = (22)

Binary Multiplication

? = 106 * 32 + 106 * 4 + 106 * 1

32 = (25)

4 = (22)

1 = (20)

Binary Multiplication

? = 106 * 32 + 106 * 4 + 106 * 1

32 = (25)

4 = (22)

1 = (20)by substitution…

? = 106 * 25+ 106 * 22 + 106 * 20

Binary Multiplication

? = 106 * 25+ 106 * 22 + 106 * 20

This term can be

simplified.

Binary Multiplication

? = 106 * 25+ 106 * 22 + 106 * 20

106

Binary Multiplication

? = 106 * 25+ 106 * 22 + 106 * 20

106 converts to 1101010

Binary Multiplication

? = 106 * 25+ 106 * 22 + 106 * 20

1101010

106 * 22

Binary Multiplication

? = 106 * 25+ 106 * 22 + 106 * 20

1101010

106 * 22 shift 2

Binary Multiplication

? = 106 * 25+ 106 * 22 + 106 * 20

1101010

106 * 22 shift 2 110101000

Binary Multiplication

? = 106 * 25+ 106 * 22 + 106 * 20

1101010

110101000

106 * 25

Binary Multiplication

? = 106 * 25+ 106 * 22 + 106 * 20

1101010

110101000

106 * 25 shift 5

Binary Multiplication

? = 106 * 25+ 106 * 22 + 106 * 20

1101010

110101000

106 * 25 shift 5 110101000000

Binary Multiplication

? = 106 * 25+ 106 * 22 + 106 * 20

106 1101010

106 * 22 110101000

106 * 25 110101000000====================================

Binary Multiplication

? = 106 * 25+ 106 * 22 + 106 * 20

106 1101010

106 * 22 110101000

106 * 25 110101000000====================================

Sum 111101010010

Recommended