Booth-Algorithmus < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Ich hab ein paar Probleme eine Multiplikation mithilfe des Booth-Algorithmus durchzuführen. Mein Multiplikand ist 1010 und mein Multiplikator 0111. Wenn ich mich nocht verrechnet hab müsste 1000110 (70) rauskommen, aber mit dem Booth-Algorithmus komme ich nur auf 111010 (58). Mein Anfangsprodukt ist 0000 0111 0. Da die letzten beiden Bits 1 0 sind muss ich den Multiplikand vom Produkt subtrahieren und dann einen rechtsshift durchführen. Das Zwischenergebnis ist dann 0000 0001 0. Die letzen beiden Bits sind wieder 1 0, also wieder eine Subtraktion und ein rechtsshift. Als zweites Zwischenergebnis hab ich dann 0111 1110 0. Jetzt sind die letzten beiden Bits 0 0, also wird das Zwischenergebnis übernommen und dann ein rechtsshift durchgeführt. Das nächste Zwischenergebnis ist dann 0011 1111 0. Die letzten beiden Bit sind dann wieder 1 0, also wird wieder 1010 vom Zwischenergebnis subtrahiert und dann ein rechtsshift durchgeführt. Dann hat man das letzte Zwischenergebnis (0011 1010 0). Nach dem Rechtsshift ergibt sich also 0011 1010, was im Dezimalsystem 58 ist. Wo Liegt mein Fehler?
Ich hoffe ich hab meine Schritte verständlich erklärt und das ganze ist nicht zu unübersichtlich. Wäre nett, wenn mir jemand helfen könnte :)
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:20 So 08.07.2012 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|