www.wikidata.de-de.nina.az
Der Booth Algorithmus ist ein Algorithmus fur die Multiplikation zweier Zahlen in Zweierkomplement Darstellung Er wurde 1951 von Andrew Donald Booth bei Arbeiten zur Kristallographie am Birkbeck College entwickelt Inhaltsverzeichnis 1 Verfahren 2 Idee 2 1 Beispiel 3 Beispiele 3 1 Kodierung eines Faktors nach Booth 3 2 Multiplikation 4 Siehe auch 5 Quellen 6 WeblinksVerfahren BearbeitenSei x die Bitanzahl des Multiplikanden und y die Bitanzahl des Multiplikators Zeichne ein dreireihiges Raster mit x y 1 displaystyle x y 1 nbsp Spalten Bezeichne die Zeilen mit A Addition S Subtraktion und P Produkt Notiere die ersten x Bits jeder Zeile folgendermassen A Multiplikand S negierter Multiplikand im Zweierkomplement P Nullen Die nachsten y Bits jeder Zeile sind folgendermassen zu fullen A Nullen S Nullen P Multiplikator Die letzte Spalte wird mit Nullen aufgefullt Fuhre folgende beide Schritte y mal durch Sind die letzten beiden Bits von P 00 oder 11 Tue nichts 01 P P A displaystyle P P A nbsp Ignoriere jeglichen Uberlauf 10 P P S displaystyle P P S nbsp Ignoriere jeglichen Uberlauf Schiebe das Produkt arithmetisch um eine Position nach rechts In den vorderen x y displaystyle x y nbsp Bits steht nun das Produkt das letzte Bit wird ignoriert Idee BearbeitenMan macht sich zunutze dass sich jede Zahl b als Differenz zweier Zahlen c und d darstellen lasst Sei b c d displaystyle mbox Sei b c d nbsp Dann lasst sich jede beliebige Multiplikation von b mit einem Faktor a folgendermassen umformen a b a c d a c a d displaystyle a cdot b a cdot c d a cdot c a cdot d nbsp Vorteile gegenuber der Papier und Bleistift Methode bietet dieses Verfahren bei Zahlen die in der Binardarstellung lange gleichwertige Bitketten aufweisen Diese werden beim Booth Verfahren ubersprungen Darauf basierend erlaubt das Booth Verfahren auch eine effiziente Multiplikation fur Binarzahlen im Zweierkomplement d h der Algorithmus hat den Vorteil dass man die Vorzeichen der beiden Faktoren nicht beachten muss Beispiel Bearbeiten Will man 30 10 00011110 2 displaystyle 30 10 00011110 2 nbsp mit einer Zahl X multiplizieren benotigte man bei der traditionellen Methode drei Additionen 10 2 X 100 2 X 1000 2 X 10000 2 X displaystyle 10 2 cdot X 100 2 cdot X 1000 2 cdot X 10000 2 cdot X nbsp Das Booth Verfahren hingegen braucht nur eine 100000 2 X 10 2 X displaystyle 100000 2 cdot X 10 2 cdot X nbsp Die Subtraktion lasst sich im Zweierkomplement wie eine Addition rechnen die Multiplikation mit einem Vielfachen von 2 entspricht nur einer Verschiebung der Stellen nach links Shift Operation Somit dient das Verfahren einer effizienten Multiplikation in Computern Der Booth Algorithmus bietet eine effiziente Moglichkeit zu einer Zahl die entsprechend zu benutzende Kodierung zu ermitteln Man geht dabei von rechts nach links durch die Binarzahl Wechselt die Binarstelle von der letzten zur aktuellen Position von 0 nach 1 wird eine 1 bei einem Wechsel von 1 nach 0 eine 1 und bei keinem Wechsel eine 0 gesetzt Im ersten Schritt wird sich an die Zahl rechts eine 0 dazu gedacht Beispiele BearbeitenMultipliziere 44 10 00101100 2 displaystyle 44 10 00101100 2 nbsp und 17 10 00010001 2 displaystyle 17 10 00010001 2 nbsp Kodierung eines Faktors nach Booth Bearbeiten Schritt 1 0 1 0 1 1 0 0 00Schritt 2 0 1 0 1 1 0 0 00 0Schritt 3 0 1 0 1 1 0 0 0 1 0 0Schritt 4 0 1 0 1 1 0 0 00 1 0 0Schritt 5 0 1 0 1 1 0 0 0 1 0 1 0 0Schritt 6 0 1 0 1 1 0 0 0 1 1 0 1 0 0Schritt 7 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0Formal Dem mittels Booth zu kodierenden Operand Y y n 1 y 0 displaystyle Y y n 1 dots y 0 nbsp fuge man eine weitere Stelle y 1 displaystyle y 1 nbsp an die auf Null gesetzt wird Die weiteren Stellen y i i 0 n 1 displaystyle y i i in left 0 dots n 1 right nbsp des neuen Y y n 1 y 0 y 1 displaystyle Y y n 1 dots y 0 y 1 nbsp werden wie folgt berechnet y i y i 1 y i i 0 n 1 displaystyle y i y i 1 y i forall i in 0 dots n 1 nbsp Multiplikation Bearbeiten 0 0 0 1 0 0 0 1 2 Faktorx 0 1 1 1 0 1 0 0 Kodierung des 1 Faktors 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 keine Addition 0 0 0 0 0 0 0 0 0 0 0 0 0 0 keine Addition 1 1 1 1 1 1 1 1 0 1 1 1 1 2er Komplement 2 Faktor 0 0 0 0 0 0 0 0 0 0 0 0 keine Addition 0 0 0 0 0 0 1 0 0 0 1 2 Faktor 1 1 1 1 1 0 1 1 1 1 2er Komplement 2 Faktor 0 0 0 0 1 0 0 0 1 2 Faktor 0 0 0 0 0 0 0 0 keine Addition1 0 0 0 0 0 0 1 0 1 1 1 0 1 1 0 0 Ergebnis ohne UberlaufStatt mit 0100000 0001000 und 0000100 zu multiplizieren und die Ergebnisse zu addieren wird nun also mit 1000000 0100000 0010000 und 0000100 multipliziert und entsprechend die Ergebnisse addiert bzw subtrahiert Wie man am Beispiel sieht kann sich die Anzahl der Additionen auch erhohen im Beispiel von 3 auf 4 was ja aber gerade nicht erwunscht ist Im statistischen Durchschnitt werden im Booth Verfahren genauso viele Additionen gebraucht wie ohne Booth Verfahren Der Vorteil liegt aber darin dass in der Informatik keine Gleichverteilung von Zahlen vorliegt Vielmehr gibt es haufig Zahlen mit vielen Nullen und durch das Zweierkomplement bei negativen Zahlen haufig viele Einsen am Anfang Nur durch diese Tatsache hat das Booth Verfahren Vorteile gegenuber einer normalen Multiplikation Die Erweiterung des Booth Verfahrens ist das Bit Pair Verfahren bei dem immer zwei Stellen zusammengefasst werden Siehe auch BearbeitenAPEXC ComputerQuellen BearbeitenThe work of Professor Andrew D Booth Department of Computer Science and Information Systems Birkbeck College engl Weblinks Bearbeitenautomatisches Ausrechnen einer Booth Multiplikation Abgerufen von https de wikipedia org w index php title Booth Algorithmus amp oldid 174012359