Kennt jemand die Schritte zum Unterteilen von vorzeichenlosen binären Ganzzahlen mit nicht wiederherstellender Division?
Es ist schwer, online gute Quellen zu finden.
, d. h. wenn A = 101110
und B = 010111
Wie finden wir A divided by B
in der nicht wiederherstellenden Division? Wie sehen die Register in jedem Schritt aus?
Danke!
(Meine Antwort ist ein bisschen spät-Antwort. Aber ich hoffe, dass es für zukünftige Besucher nützlich sein wird)
Der Algorithmus für die nicht wiederherstellende Division ist in der folgenden Abbildung angegeben:
In diesem Problem ist Dividend (A) = 101110, dh 46, und Divisor (B) = 010111, dh 23.
Initialisierung:
%Vor%Danach starten wir den Algorithmus, den ich in einer Tabelle unten gezeigt habe:
In der Tabelle SHL(AQ) denotes shift left AQ by one position leaving Q0 blank
.
In ähnlicher Weise bezeichnet ein quadratisches Symbol in der Position Q0 it is to be calculated later
Hoffe, alle Schritte sind klar vom Tisch entfernt !!!
1) Setzen Sie den Wert von Register A auf 0 (N Bits)
2) Setze den Wert von Register M als Divisor (N Bits)
3) Setze den Wert von Register Q als Dividend (N Bits)
4) Verknüpfen Sie A mit Q {A, Q}
5) Wiederholen Sie die folgenden "N" -Zeiten (hier ist N die Anzahl der Bits im Divisor):
Wenn das Vorzeichenbit von A gleich 0 ist,
Shift A und Q kombiniert links um 1 Bit und
subtrahiere M von A,
sonst shift A und Q kombiniert links um 1 Bit und add M zu A
Wenn nun das Vorzeichenbit von A gleich 0 ist, dann setze Q [0] auf 1, sonst setze Q [0] auf 0
6) Schließlich, wenn das Vorzeichenbit von A gleich 1 ist, addiere M zu A.
7) Weisen Sie A als Rest und Q als Quotienten zu.