Section 9.8
Review Questions

Integer Multiplication

  1. Perform the following decimal multiplication and describe any shortcuts or simplifications that make it easier.
                 3782938
               ×  222222
                --------
answer...
Calculate 2×3782938 just once, giving 7565876. Then add 7565876 to 75658760 to 756587600 to 7565876000, etc.
  1. What are the names of the two numbers which are multiplied together?
answer...
multiplier and mulitiplicand
  1. Why is binary multiplication easier (for humans) than decimal multiplication?
answer...
because multiplication by 1 or 0 is so trivial
  1. If two 16-bit numbers are multiplied together, what is the longest product that can result?
answer...
32 bits
  1. Suppose two 16-bit numbers are multiplied together. What is the maximum number of additions that are required?
answer...
16
  1. In addition to addition, which other elementary operation is required for multiplication?
answer...
shifting
  1. Perform 137×43. The first two steps are done for you below. 137 = 100010012 and 43 = 001010112.
     counter                 partial sum                       multiplier
     ---------------------------------------------------------------------------
     00001000             00000000 00000000                     10001001
                         +         00101011      add 43-------- ^
                         ------------------
                          00000000 00101011
     00000111 (decr)                                            00010010
     (lshift)
        not zero          00000000 01010110  (lshift)
     ---------------------------------------------------------------------------
     00000111             00000000 01010110                     00010010
                         +         00000000      don't add 43-- ^
                         ------------------
                          00000000 01010110
     00000110 (decr)                                            00100100
     (lshift)
        not zero          00000000 10101100  (lshift)
     ---------------------------------------------------------------------------
answer...
counter                 partial sum                       multiplier
---------------------------------------------------------------------------
00001000             00000000 00000000                     10001001
                    +         00101011      add 43-------- ^
                    ------------------
                     00000000 00101011
00000111 (decr)                                            00010010
(lshift)
   not zero          00000000 01010110  (lshift)
---------------------------------------------------------------------------
00000111             00000000 01010110                     00010010
                    +         00000000      don't add 43-- ^
                    ------------------
                     00000000 01010110
00000110 (decr)                                            00100100
(lshift)
   not zero          00000000 10101100  (lshift)
---------------------------------------------------------------------------
00000110             00000000 10101100                     00100100
                    +         00000000      don't add 43---^
                    ------------------
                     00000000 10101100
00000101 (decr)                                            01001000
(lshift)
    not zero         00000001 01011000  (lshift)
---------------------------------------------------------------------------
00000101             00000001 01011000                     01001000
                    +         00000000      don't add 43---^
                    ------------------
                     00000001 01011000
00000100 (decr)                                            10010000
(lshift)
    not zero         00000010 10110000  (lshift)
---------------------------------------------------------------------------
00000100             00000010 10110000                     10010000
                    +         00101011      add 43-------- ^
                    ------------------
                     00000010 11011011
00000011 (decr)                                            00100000
(lshift)
    not zero         00000101 10110110  (lshift)
---------------------------------------------------------------------------
00000011             00000101 10110110                     00100000
                    +         00000000      don't add 43---^
                    ------------------
                     00000101 10110110
00000010 (decr)                                            01000000
(lshift)
    not zero         00001011 01101100  (lshift)
---------------------------------------------------------------------------
00000010             00001011 01101100                     01000000
                    +         00000000      don't add 43---^
                    ------------------
                     00001011 01101100
00000001 (decr)                                            10000000
(lshift)
    not zero         00010110 11011000  (lshift)
---------------------------------------------------------------------------
00000001             00010110 11011000                     10000000
                    +         00101011      add 43-------- ^
                    ------------------
                     00010111 00000011
00000000 (decr)                                            00000000
(lshift)
        zero        do not shift
---------------------------------------------------------------------------