Si un hardware no admite operaciones de módulo o división, se necesitan muchos más ciclos de CPU para simular el módulo / división por software. ¿Hay alguna forma más rápida de calcular la división y el módulo si el operando es 10?
En mi proyecto con frecuencia necesito calcular el módulo de enteros 10. En particular, estoy trabajando en PIC16F y necesito mostrar un número en un LCD. Se admiten 4 dígitos, por lo que hay 4 llamadas a la función de módulo y división (implementación de software). Es decir, como el siguiente:
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();
Hay otras áreas que usan código similar.