題目描述
寫一個函數,求兩個整數之和,要求在函數體內不得使用+、-、*、/四則運算符號。
/**
* 寫一個函數,求兩個整數之和,要求在函數體內不得使用+、-、*、/四則運算符號。
*/
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;
}
}