0
$\begingroup$

It's being said booth's algorithm produces the output exactly as normal binary multiplication while reducing the number of operations performed and can be used for both positive and negative numbers !

I tried multiplying two 4-bit numbers while I don't get the same result...Please guide what am doing wrong.

Multiplicand : 1101 , Multiplier : 1110,
Recorded Multiplier(Applying skipping over 1's) : 00-10

Normal Multiplication

Booth's way of Multiplication

The Result's are different Please Help !

$\endgroup$
4
  • $\begingroup$ (Are you positive about the most significant zero(es) in the "Normal(?) Multiplication" result?) $\endgroup$
    – greybeard
    Commented Sep 4, 2020 at 12:36
  • $\begingroup$ Do you mean in the first row(r1 out of r1,r2,r3,r4) of the multiplication result ? I have done sign extension , since the MSB is Zero so the sign 0 will be extended further ! $\endgroup$
    – Dan
    Commented Sep 4, 2020 at 12:50
  • $\begingroup$ In Normal Multiplication we don't extend the sign so for Normal Multiplication the Result will be : 010110110(Correction) I took it by mistake , But the results are still not equal ! $\endgroup$
    – Dan
    Commented Sep 4, 2020 at 13:14
  • $\begingroup$ (I meant just summing the digits shown: there's a "double overflow" from bit 5, I think mechanically that should read 11010110.) For the overall approach, please visit en.wikipedia on signed binary multiplication and Booth encoding. $\endgroup$
    – greybeard
    Commented Sep 4, 2020 at 16:00

1 Answer 1

1
$\begingroup$

When you use normal multiplication, multiplicand and multiplier are represented using (Sign + Magnitude) representation. So effectively 1101 is +(13) in Decimal and (1110) is +14 in decimal as they represent the magnitude. Sign bit would be separate. So the result is (+13)*(+14) = +182 which is 1011 0110 in binary.

When you use booth multiplication, operand are in 2's complement representation. So 1101 is -3 and 1110 is -2 in decimal. So the answer will be 0000 0110 that is +6 in decimal. The problem is with your representation of multiplicand and multiplier.

$\endgroup$
4
  • $\begingroup$ My Understanding : If i want to use booth's algorithm for unsigned numbers then i can do that directly ! But If for Signed Numbers than they need to be represented in 2's complement representation . Now as Positive numbers are represented without any modifications (a sign bit(0) will be needed to represent positive numbers) and for negative i will first find out the 2's complement and then the reduced multiplier and fetch the result . $\endgroup$
    – Dan
    Commented Sep 5, 2020 at 6:12
  • $\begingroup$ Signed No's : To Multiply +13 and +14 using Booth's the procedure will be Multiplicand : 01101 and Multiplier : 01110, Reduced Multiplier : +100-10 and the Result will be : 010110110...Answer Match $\endgroup$
    – Dan
    Commented Sep 5, 2020 at 6:16
  • $\begingroup$ Focus on bits used to represent the number. In 4 bit, you can represent +7(0 111) to -7(1 111) using S+M representation. In the same 4 bits, you can represent +7(0111) to -8(1000). So when you are multiplying use appropriate bit size representation. You cannot represent 13 in 4 bits, using S+M representation. you need 1+4 bits. Sign bits are multiplied(XOR gate) separately in simple multiplication. Simple multiplication, multiplies only the magnitude part, which are straight binary representation of the operands. $\endgroup$
    – ajit
    Commented Sep 5, 2020 at 6:22
  • $\begingroup$ Thanks I learnt it $\endgroup$
    – Dan
    Commented Sep 6, 2020 at 12:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.