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$
  • $\begingroup$ (Are you positive about the most significant zero(es) in the "Normal(?) Multiplication" result?) $\endgroup$ – greybeard Sep 4 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 Sep 4 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 Sep 4 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 Sep 4 at 16:00
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.

| cite | improve this answer | |
$\endgroup$
  • $\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 Sep 5 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 Sep 5 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 Sep 5 at 6:22
  • $\begingroup$ Thanks I learnt it $\endgroup$ – Dan Sep 6 at 12:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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