题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
题目分析
加法的位运算主要分为两种:
- 执行加法 x ^ y
- 进位操作 ( x & y ) << 1
两者的结果相加才能够得到最终的结果。
代码
C++代码如下:
class Solution {
public:
int Add(int num1, int num2)
{
int res=0;
int carry=0;
do
{
res=num1^num2;//不带进位加法
carry=(num1&num2)<<1;//进位计算
num1=res;
num2=carry;
}while(carry!=0);//进位不为0时继续进行加法处理
return res;
}
};