Java实现乘法的⽅法——(三种)
最近在看⼀篇java的笔试题,⾥⾯要求⽤效率最⾼的⽅法求2*8,然后第⼀反应就是直接使⽤Java⾃带的乘法,然后发现其实还可以使⽤位运算符 “<<” 进⾏计算(如移了N位则乘了2的N次⽅)。所以我从中总结了三种⽅法来实现乘法的计算。希望对⼤家有帮助
⽅法1(直接相乘):
励志的成语大全该⽅法最直接:
// An highlighted block
公公的幻想
int d =2*8;
System.out.println(d);//d = 16
⽅法2(for循环相加):
此⽅法利⽤了乘法的原理,即使⽤多次使⽤加法进⾏叠加实完成的乘法效果:庄稼一枝花
// An highlighted block
int d =0;
for(int i =0; i <2; i++){
政务大厅d +=8;
}
System.out.println(d);//d = 16
⽅法3(使⽤位运算符):
此⽅法使⽤位运算符进⾏计算,直接操作机器⼆进制数,效率最⾼
煤矿安全生产标语// An highlighted block
int d =2<<3;
System.out.println(d);//d = 16清蒸鳕鱼
出于好奇,我⼜在此⽅法基础上造了⼀个使⽤位运算+java⾃带乘法计算的⽅法来实现乘法(⽬前不知道会不会⽐java⾃带的快0 - 0)代码如下:
// An highlighted block
// 乘法:使⽤到位运算
public static void mul(int a,int b){
int i =1;
//调换位置
if(a > b){小苹果铃声
int z = a;
a = b;
b = z;
}
while((b -(2<< i))>0){
i++;
就业渠道}
int res =(a << i)+ a *(b -(2<<(i -1)));
System.out.println(res);
}