把一个数向左移动n位相当于把该数乘以2的n次方,因此当乘法运算中的某个数字满足这个特点时,就可以用移位操作来代替乘法操作,从而提高效率。
演示代码如下:
/**
* @author 阿水
* @create 2023-04-15 15:45
* 把一个数向左移动n位相当于把该数乘以2的n次方,因此当乘法运算中的某个数字满足这个特点时,就可以用移位操作来代替乘法操作,从而提高效率。
*/
public class TheShiftOperationImplementsMultiplication {
public static int multiplication(int m, int n) {
//在绝大多数编程语言中,如果if、for、while等语句的内容中仅有一条语句,可以省略花括号。
//注意:是一条语句,不是一行。
for (int i = 0; i < n; i++) m = m << 1;
return m;
}
public static void main(String[] args) {
//2的零次方为1、 2的一次方为2、 2的二次方为4、 2的三次方为8、 2的四次方为16
//以此类推
System.out.println("4乘以16为:" + multiplication(4, 4));
System.out.println("4乘以32为:" + multiplication(4, 5));
}
}
程序运行结果如下:
4乘以16为:64
4乘以32为:128