Si un hardware no admite operaciones de módulo o división, se necesitan muchos más ciclos de CPU para simular 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 entero 10. En particular, estoy trabajando en PIC16F y necesito mostrar un número en una pantalla LCD. Hay 4 dígitos para admitir, 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 un código similar.