Computerarithmetik

Warum sind übliche Ganzzahldividierer (Restoring, Non-Restoring usw., die den Quotienten Bit für Bit bestimmen) tendenziell langsamer als Multiplizierer?

  1. AWeil das Ergebnis einer Division mehr Bits hat als das einer Multiplikation
  2. BWeil jedes Quotientenbit vom vorherigen Ergebnis abhängt und sich schlecht parallelisieren lässt
  3. CWeil sich Divisionsschaltungen nur für Gleitkomma bauen lassen
Antwort und Erläuterung anzeigen

Antwort: B. Weil jedes Quotientenbit vom vorherigen Ergebnis abhängt und sich schlecht parallelisieren lässt

Bei der Multiplikation werden alle Teilprodukte gleichzeitig erzeugt und z. B. mit einem Wallace-Tree parallel addiert. Bei Dividierern nach dem Prinzip der schriftlichen Division wird dagegen geprüft, ob sich der Divisor vom Rest subtrahieren lässt, um ein Quotientenbit zu bestimmen, und der verbleibende Rest dient zur Bestimmung des nächsten Bits; jeder Schritt hängt also vom vorherigen Ergebnis ab. Daher kommt man pro Takt nur ein bis wenige Bit voran, und es können mehrere zehn Takte nötig sein. Es gibt auch Verfahren, den Kehrwert per Newton-Verfahren zu bestimmen und in eine Multiplikation umzuwandeln. Die Bitzahl des Ergebnisses ist nicht größer.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Computerarithmetik

  1. Was ergibt sich, wenn −8 (1111 1000) als vorzeichenbehaftete 8-Bit-Ganzzahl mit arithmetischem Rechtsshift um 1 Bit nach rechts geschoben wird?
  2. In C: Welche Kombination der Ergebnisse von −7 / 2 und −7 >> 1 (bei arithmetischem Rechtsshift) für int ist korrekt?
  3. In C: Was ergibt 0 − 1 bei einer 32-Bit-Ganzzahl ohne Vorzeichen (unsigned int)?
  4. Wie lässt sich bei der Addition vorzeichenloser Ganzzahlen feststellen, dass das Ergebnis den darstellbaren Bereich überschritten hat (Überlauf)?
  5. Welche Aussage zum Abstand benachbarter darstellbarer Werte bei Gleitkommazahlen ist korrekt?