进位乘法技巧

最近看java源码发现他们使用进位的方式来进行乘法,在这里就用用进位乘法

 

101二进制=5十进制.

101<<1进1位等于1010等于10十进制   5*2^1

101<<2进2位等于10100等于20十进制   5*2^2

101<<3进3位等于101000等于40十进制   5*2^3

 

假如我要的是5*10,根据初中数学利用上面的规律得5*(2^3+2^1)=5*2^3+5*2^1=5<< 3+5<<1=50;

如果是5*12呢?

5*(2^3+2^2)=5*2^3+5*2^2=5<<3+5<<2=60;

 

利用这套规律,就算num*n都是可以用进位算出来的(n必须满足能被2整除)

哪里有什么错麻烦大佬指出

上一篇:V4 V7 V13支持包的区别


下一篇:LeetCode:101. 对称二叉树————简单