Wenn eine Hardware keine Modul- oder Divisionsoperationen unterstützt, sind viel mehr CPU-Zyklen erforderlich, um den Modul / die Division durch Software zu simulieren. Gibt es eine schnellere Möglichkeit, Division und Modul zu berechnen, wenn der Operand 10 ist?
In meinem Projekt muss ich häufig den Ganzzahlmodul 10 berechnen. Insbesondere arbeite ich an PIC16F und muss eine Zahl auf einem LCD anzeigen. Es sind 4 Ziffern zu unterstützen, daher gibt es 4 Aufrufe der Modul- und Divisionsfunktion (Software-Implementierung). Das heißt, wie folgt:
digit = number % 10; // call to an expensive function
number /= 10; // call to an expensive function
somehow_lit_segments();
digit = number % 10; // call to an expensive function
number /= 10; // call to an expensive function
somehow_lit_segments();
digit = number % 10; // call to an expensive function
number /= 10; // call to an expensive function
somehow_lit_segments();
digit = number % 10; // call to an expensive function
number /= 10; // call to an expensive function
somehow_lit_segments();
Es gibt andere Bereiche, die ähnlichen Code verwenden.