在计算机中,计算都是二进制下的运算,主要设计三种操作符,分别为按位与&,按位或|,按位异或^,两个数相加,若不涉及进位运算,则是两个数进行异或,两个数相加的进位其实是两个数想与&之后的二进制再左移<<一位,然后将这两步所得结果再进行相加,直到进位为0为止。实现如下:
class Solution {
public:
int Add(int num1, int num2)
{
while(num2!=0){
int res=num1^num2;
num2=(num1&num2)<<1;
num1=res;
}
return num1;
}
};