题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
/**
* 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
*/
public class _047_Add {
public static void main(String[] args) {
Add(5,7);
}
/**
* 删掉注释后运行,即可看过中间效果
*/
public static int Add(int num1, int num2) {
// System.out.println("num1: " + Integer.toBinaryString(num1) + ",num2: " + Integer.toBinaryString(num2));
while (num2 != 0) {
// 把不同的值保存到temp
int temp = num1 ^ num2;
// 相同的值保留并向前进一位,相同则进一位. 1,1-->10,
num2 = (num1 & num2) << 1;
// num1获取到 他们之间不同的值
num1 = temp;
// System.out.println("num1:" + Integer.toBinaryString(num1) + ",num2: " + Integer.toBinaryString(num2));
}
return num1;
}
}