我在网上看到关于MSP430C程序代码的优化
a = a* 9 ; 用
a =(a<<3)+a;
但是我看了好久都没有看出规律呀
Hardy Hu:
再举个例子,比如a=a*15,则可改写成a=a*8+a*4+a*2+a=(a<<3)+(a<<2)+(a<<1)+a
Peter_Zheng:
这就是用移位,加法来替乘法运算。C语言需要编译为汇编语言,乘法所占用的汇编代码比较大,所以在没有硬件乘法器的时候可以使用其他方式来代替乘法运算。这只是C程序优化的一小部分
我在网上看到关于MSP430C程序代码的优化
a = a* 9 ; 用
a =(a<<3)+a;
但是我看了好久都没有看出规律呀
再举个例子,比如a=a*15,则可改写成a=a*8+a*4+a*2+a=(a<<3)+(a<<2)+(a<<1)+a
这就是用移位,加法来替乘法运算。C语言需要编译为汇编语言,乘法所占用的汇编代码比较大,所以在没有硬件乘法器的时候可以使用其他方式来代替乘法运算。这只是C程序优化的一小部分