题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
提交链接:点击
思路: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; }