如果硬件不支持模数或除法运算,则需要更多的 CPU 周期来通过软件模拟模数/除法。如果操作数是 10,有没有更快的方法来计算除法和模数?
在我的项目中,我经常需要计算整数模数 10。特别是,我正在研究 PIC16F,需要在 LCD 上显示一个数字。支持 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();
还有其他领域使用类似的代码。