Se um hardware não suporta operações de módulo ou divisão, são necessários muito mais ciclos de CPU para simular módulo / divisão por software. Existe alguma maneira mais rápida de calcular a divisão e o módulo se o operando for 10?
No meu projeto, freqüentemente preciso calcular o módulo inteiro 10. Em particular, estou trabalhando no PIC16F e preciso mostrar um número em um LCD. Existem 4 dígitos para suportar, portanto, existem 4 chamadas para a função de módulo e divisão (implementação de software). Ou seja, como o seguinte:
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();
Existem outras áreas que usam código semelhante.