写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
class Solution {
public:
int Add(int num1, int num2)
{
while (num2)
{
int sum = num1 ^ num2;
num2 = (num1 & num2) << 1;
num1 = sum;
}
return num1;
}
};
解题思路类型10进制加法。
第一步通过异或运算求出二进制数的和(不包含进位)
第二部通过与运算后左移1位求出进位值
第三部,重复1、2。直到进位值为0,完成计算。