Se un hardware non supporta le operazioni di modulo o divisione, sono necessari molti più cicli della CPU per simulare il modulo / divisione tramite software. Esiste un modo più veloce per calcolare la divisione e il modulo se l'operando è 10?
Nel mio progetto ho spesso bisogno di calcolare il modulo intero 10. In particolare, sto lavorando su PIC16F e devo mostrare un numero su un LCD. Ci sono 4 cifre da supportare, quindi ci sono 4 chiamate al modulo e alla funzione di divisione (implementazione del software). Cioè, come il seguente:
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();
Ci sono altre aree che usano un codice simile.