Ist-Stand-Multiplikation Algorithmus zur Multiplikation 2 positive zahlen?

Ist booth-Algorithmus für die Multiplikation nur für die Multiplikation 2 negative zahlen (-3 * -4) oder eine positive und eine negative Zahl (-3 * 4) ? Immer wenn ich multiplizieren mit 2 positiven zahlen mit Stand-Algorithmus erhalte ich ein Falsches Ergebnis.

Beispiel : 5 * 4

A = 101 000 0 //binary of 5 is 101

S = 011 000 0 //2's complement of 5 is 011

P = 000 100 0 //binary of 4 is 100

x = 3 number of bits in m

y = 3 number of bits in r

m = 5

-m = 2-Komplement von m

r = 4

  1. Nach rechts Verschiebung von P um 1 bit 0 000 100

  2. Nach rechts Verschiebung von P um 1 bit 0 000 010

  3. P+S = 011 001 0

    Nach rechts-shift um 1 bit 0 011 001

  4. Verwerfen des LSB 001100

    Aber das kommt auf das Programm des 12 . Es sollte 20(010100)

UPDATE nach @ ruakh Antwort

5 * 4 = 20

m = 0101 is 5

r = 0100 is 4

A = 0101 0000 0

S = 1010 0000 0

P = 0000 0100 0

  1. shift P nach rechts um 1 bit : 0 0000 0100

  2. shift P nach rechts um 1 bit : 0 0000 0010

  3. P+S = 10100010
    Die Verlagerung rightby 1 bit : 1101 0001

  4. P+A = 1 0010 0001 here 1 is the carry generated
    verschieben nach rechts um 1 bit : 110010000

Verlassen des LSB : 11001000 (nicht gleich 20)

InformationsquelleAutor saplingPro | 2011-11-19
Schreibe einen Kommentar