Computer Organization : Hardware Requirement and Algorithm for Multiplying Binary Numbers in Sign Magnitude Format

Sign Magnitude representation is one way of representing signed numbers in binary format. In this format, the most significant bit (MSB) represents the sign of the number, where 0 indicates a positive value, and 1 indicates a negative value. The remaining bits represent the magnitude of the number.

To multiply two binary numbers in sign magnitude format, we can use hardware circuits designed for binary multiplication. The multiplication process involves a series of shifts and additions, similar to the long multiplication method in decimal arithmetic.

Hardware Requirements for Binary Multiplication:

  1. Binary Adders: We need binary adders to perform addition during the multiplication process.
  2. Shift Registers: Shift registers are required to perform left shifts during the multiplication process.
  3. Control Unit: A control unit is needed to sequence the steps of the multiplication algorithm.

Flowchart for Binary Multiplication:

Below is a flowchart illustrating the steps for multiplying two binary numbers in sign magnitude format:

Start
|
V
Initialize product (result) to 0
|
V
Set up multiplicand and multiplier (binary numbers in sign magnitude format)
|
V
Set counter to the number of bits in the multiplier
|
V
Repeat until the counter reaches 0:
   |
   V
   If the least significant bit of the multiplier is 1:
   |   |
   |   V
   |   Add the multiplicand to the product
   |   |
   |   V
   V   Right shift the product (divide by 2)
   |
   V
   Right shift the multiplier (divide by 2)
   |
   V
   Decrement the counter
|
V
Display the final product (result)
|
V
End
Illustration for the Multiplication of 11111 by 10101: Let’s illustrate the algorithm step-by-step for the multiplication of 11111 by 10101:

1. Initialize product: 00000 (5-bit result)

2. Set multiplicand: 11111

3. Set multiplier: 10101

4. Set counter to 5 (5 bits in the multiplier)

Step 1:

Product (result) = 00000
Multiplier       = 10101
Counter          = 5

Step 2 (Counter = 5, least significant bit of the multiplier is 1):

Product += Multiplicand
Product = 00000 + 11111 = 11111
Multiplier       = 01010   (Right shift)
Counter          = 4

Step 3 (Counter = 4, least significant bit of the multiplier is 0):

Product = 11111
Multiplier       = 00101   (Right shift)
Counter          = 3

Step 4 (Counter = 3, least significant bit of the multiplier is 1):

Product += Multiplicand
Product = 11111 + 11111 = 111110
Multiplier       = 00010   (Right shift)
Counter          = 2

Step 5 (Counter = 2, least significant bit of the multiplier is 0):

Product = 111110
Multiplier       = 00001   (Right shift)
Counter          = 1

Step 6 (Counter = 1, least significant bit of the multiplier is 1):

Product += Multiplicand
Product = 111110 + 11111 = 1000101
Multiplier       = 00000   (Right shift)
Counter          = 0

Result:

Product (Result) = 1000101
Author: user

Leave a Reply