我必须做很多乘法运算。如果我考虑效率,那么我应该使用位操作而不是常规*操作吗?如果位操作有差异怎么办?提前谢谢..
答案 0 :(得分:12)
不,你应该使用乘法运算符,让优化编译器决定如何最快地完成它。
您会发现编译器知道如何针对它所针对的任何平台做到最好。更重要的是,如果你开始编写位移操作而不是乘法或除法,你的代码将很快变得不可维护。
答案 1 :(得分:3)
优先考虑代码优化的可读性,让编译器为您完成。
不要尝试使用二进制文件,因为:
答案 2 :(得分:2)
不,有两大原因:
只有少数情况我可以想到您甚至可能会开始考虑自定义解决方案:
答案 3 :(得分:1)
位操作只能用于使用<<<<<<<<<<<<<<运算符(按位移位)
我记得还有其他方法可以改进乘法,例如预先计算产品和存储在矩阵中,但所有这些都取决于您在应用程序中的要求。