IMHO ist Division sehr kompliziert in Hardware zu implementieren. Dividieren und Multiplizieren funktioniert genau so, wie man es in der Grundschule lernt (eben für 2er-System anstatt 10er-System).
Bei einer Divison musst du ja Schieben-Vergleichen, Subtrahieren wenn kleiner, etc. Das ist sehr aufwändig in HW. Da brauchst du schon mehr als ne einfache ALU kann: Schleifen und so, also ein richtiges Rechenwerk mit Registern und Taktung.
Am einfachsten in eine Dummie-Division, nicht so effizient wie die Grunschul-Division, dafür aber einfachen. Hier für positive Zahlen ausgetextet:
Die Subtraktion machst du im 2er-Komplement:Code:## QUOTIENT = DIVIDEND / DIVISOR ## REST = DIVIDEND modulo DIVISOR IF DIVISOR = 0 ERROR ELSE QUOTIENT := 0 REST := DIVIDEND WHILE (DIVISOR <= REST) REST := REST - DIVISOR QUOTIENT := QUOTIENT + 1 END WHILE END IF
Code:y-x := y + 1 + NOT x
Lesezeichen