题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
提交链接:点击
思路:k进制的加法的本质就是每位相加,如果数满k,则进行进位。
1.两个数异或,相当于每一位相加,没有进行进位
2.两个数相与再左移移位,相当于求得进位。
代码:
//通过异或和与、移位操作
class Solution {
public:
int Add(int num1, int num2)
{
while(num1){
int temp = num1^num2;
num1 = (num1&num2)<<1;
num2= temp;
}
return num2;
}
来源:https://www.cnblogs.com/logo-88/p/9937687.html