输入两个无符号整数x, y, 用位操作实现无符号整数的乘法运算。不用考虑整数的溢出。
输入:
235 657
输出:
154395
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int x=s.nextInt();
int y=s.nextInt();
System.out.println(multiply(x,y));
}
private static int multiply(int x, int y) {
// TODO 自动生成的方法存根
int sum=0;
int len=String.valueOf(Integer.toBinaryString(y)).length();
while(len>0) {
if((y&1)==1) {
sum=add(x,sum);
}
y=y>>1;
x=x<<1;
len--;
}
return sum;
}
private static int add(int x, int y) {
// TODO 自动生成的方法存根
int s=x^y;
int c=(x&y)<<1;
int t;
while(c!=0) {
t=s^c;
c=(s&c)<<1;
s=t;
}
return s;
}
}