ZHDA315 September 2026 MSPM0C1103 , MSPM0C1103-Q1 , MSPM0C1104 , MSPM0C1104-Q1
乘法与除法运算需要耗费大量周期来执行,并且需要更多代码来实现这些运算。因此,设法从代码中去除不必要的乘法或除法,是节省代码空间和执行时间的绝佳途径。
对于乘以或除以 2 的幂(例如 2、4、8、16、……)的情况,可以使用位移来代替。在 C 中进行位移,使用 >> 表示右移,<< 表示左移,后接要移位的位数。这比乘法或除法高效得多,因为 CPU 中有用于位移的汇编指令和硬件。
另一种方法是判断乘法或除法能否在编译时而非运行时计算。例如,当两个常量相乘且不涉及变量时,编译器可以在编译期间算出结果并直接使用该计算值,从而省去原本会同时消耗内存和执行时间的乘法代码。
如果乘法中涉及某个变量,因而无法全部提前计算,而该变量又具有已知的取值范围,就可以创建一张查找表来存放各种可能的结果。