问答题 最有效的计算2乘以8的方法是什么
【正确答案】
【答案解析】2<<3。
虽然直接进行乘法操作符运算也可以进行2与8的相乘,但是该种方法并非最优,通过移位方法会比较高效。因为将一个数左移n位,相当于乘以了2的n次方。因此,一个数乘以8,而8是2的3次方,所以只要该数左移3位即可实现乘以8的目的。
常规的乘法运算也可以实现,但CPU直接支持位运算,效率最高,所以操作2乘以8的最有效的方法是2<<3。
引申:如何快速求取一个整数的7倍?
相比移位运算,如果直接使用乘法运算符的话,则执行效率相对比较慢,所以快速的方法就是将这个乘法转换成加减法和移位操作。由于移位运算相当于乘法运算或除法运算,左移相当于乘法运算,右移运算相当于除法运算,所以此时可以先将此整数左移3位(相当于将数字乘以8),然后再减去原值,即(x<<3)-x就获得了x的7倍。此处需要注意的是,由于-的优先级高于<<,所以不能去掉括号,否则结果不正确。