Hallo Bernhard,
Zitat Zitat von BMS Beitrag anzeigen
Zudem muss auch beim Teilen durch große Zahlen beachtet werden, dass aufgrund des ganzzahligen Teilens ohne Rest Genauigkeit verloren gehen kann.
Da muss man eben optimieren. Den Bruch so klein wie möglich, aber so gross, dass man die benötigte Genauigkeit noch erreicht!
Aber gefragt wurde nach einem Fehler im Bereich von 1% und das ist eigentlich kein Problem.
Zitat Zitat von BMS Beitrag anzeigen
22 Shifts im obigen Code brauchen ohne Barrel Shifter auch viele Takte. Das Schieben kann auch auf das nächste Vielfache von 8 Bit geschehen, der Zugriff kann dann auf die einzelnen Bytes erfolgen.
Das ist im Allgemeinen aber der Job des Compilerherstellers, dass er optimalen Code erzeugt.

Bei manchen CPUs ist eine Integermultiplikation schneller als mehrere Left-Shifts.

MfG Peter(TOO)