写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路:用位运算,二进制的运算过程,
作和:不算进位,全1为0,全0为0,0 1 为1 ,相当于异或;
进位:全1为1,其余为0,而且要左移一位<<1;
重复上述步骤没有进位即停止计算。
class Solution {
public:
int Add(int num1, int num2)
{
while(num2!=0)
{
int temp=num1^num2;
num2=(num1&num2)<<1;
num1=temp;
}
return num1;
}
};