如果硬件不支持模数或除法运算,则需要更多的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();
还有其他地区使用类似的代码。