What is the difference between a = a * (2^3) and a = a << 3?

来源:互联网 发布:免费动画制作软件 编辑:程序博客网 时间:2024/06/10 08:32

 What is the difference between a = a * (2^3) and a = a <<3?

在面试题中,经常会问,如何高效的实现某个数值乘以2的n次方,标准答案一般是向左移位n位。

其实,这个跟编译器有关系的。当编译器看到常数2的n次方后,可能会直接优化成左移位操作。大家可以自己调试跟踪一下汇编代码。