计算机计算整数乘积的原理:
/**
* Caculate the multiplication between two integer
* @author open201
*
*/
public class Two {
/**
* Fundamental method
* f(n) = O(n^2)
* @param a
* @param b
* @return
*/
public static int naiveMul(int a,int b){
int x = 0;
//判断a中出现1的位置,每当出现1就将b的移位运算结果加到最终的结果中。
while(a > 0){//n bits
if(a%2==1)
x = x + b; //n bits
a = a>>1;
b = b<<1;
}
return x;
}
public static void main(String [] args){
System.out.println(naiveMul(20,60));
}
}