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 necesito con frecuencia calcular el módulo entero 10. En particular, estoy trabajando en el PIC16F y necesito mostrar un número en una pantalla LCD. Hay 4 dígitos para apoyar, por lo que hay 4 llamadas a la función de módulo y división (implementación de software). Es decir, como lo 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 utilizan un código similar.