不用加减乘除做加法
描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
代码 (Java)
public class Solution {
public int Add(int num1,int num2) {
int sum = num1 ^ num2; // 用异或运算表示无进位的和
int carry = (num1 & num2) << 1; // 位与运算再左移一位表示各个进位
while (carry != 0) {
num1 = sum;
num2 = carry;
sum = num1 ^ num2;
carry = (num1 & num2) << 1;
}
return sum;
}
}