Si un matériel ne prend pas en charge les opérations de module ou de division, il faut beaucoup plus de cycles CPU pour simuler le module / division par logiciel. Existe-t-il un moyen plus rapide de calculer la division et le module si l'opérande vaut 10?
Dans mon projet, j'ai souvent besoin de calculer le module entier 10. En particulier, je travaille sur PIC16F et j'ai besoin d'afficher un nombre sur un écran LCD. Il y a 4 chiffres à prendre en charge, il y a donc 4 appels à la fonction module et division (implémentation logicielle). Autrement dit, comme suit:
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();
Il existe d'autres domaines qui utilisent un code similaire.