Если аппаратное обеспечение не поддерживает операции модуля или деления, для моделирования модуля / деления с помощью программного обеспечения требуется гораздо больше циклов ЦП. Есть ли более быстрый способ вычисления деления и модуля, если операнд равен 10?
В моем проекте мне часто нужно вычислять целочисленный модуль 10. В частности, я работаю над PIC16F и мне нужно показать число на ЖК-дисплее. Поддерживается 4 цифры, поэтому имеется 4 вызова модуля и функции деления (программная реализация). То есть вроде следующего:
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();
Есть и другие области, в которых используется похожий код.