Jeśli sprzęt nie obsługuje operacji modułu lub podziału, potrzeba więcej cykli procesora, aby zasymulować moduł / podział przez oprogramowanie. Czy istnieje szybszy sposób obliczenia podziału i modułu, jeśli operandem jest 10?
W moim projekcie często muszę obliczać moduł całkowity 10. W szczególności pracuję nad PIC16F i muszę pokazać liczbę na wyświetlaczu LCD. Obsługiwane są 4 cyfry, więc są 4 wywołania funkcji modułu i podziału (implementacja oprogramowania). To znaczy, jak poniżej:
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();
Istnieją inne obszary, które używają podobnego kodu.