/**
* 题目:不用加减乘除做加法.写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
* 思考:剑指offer。 1)直接使用Integer类的sum()方法。
* 2)用异或运算。第一步计算异或和,第二步按位与后左移一位操作 直到没有进位后输出结果,否则一直重复第一第二步
* eg:14(1110)+7(0111)
* 第一次:1001,1100;第二次:0101,10000,第三次10101,0,输出结果10101
*
* @author hexiaoli
*/
public class Main {
public static int Add1(int num1, int num2) {
return Integer.sum(num1, num2);
}
public static int Add2(int num1, int num2) {
while (num2!=0) {
int temp = num1^num2;
System.out.println("temp"+temp);
num2 = (num1&num2)<<1;
System.out.println("num2"+num2);
num1 = temp;
}
return num1;
}
public static void main(String[] args) {
// System.out.println(Add1(10, 5));
System.out.println(Add2(14, 7));
}
}