长春火车站需要核酸检测报告吗,温州做高端网站公司,刚做的单页网站怎么预览,在手机上怎么赚钱题目描述
写一个函数#xff0c;求两个整数之和#xff0c;要求在函数体内不得使用、-、*、/四则运算符号。
解题思路
首先看十进制是如何做的#xff1a; 5712#xff0c;三步走 第一步#xff1a;相加各位的值#xff0c;不算进位#xff0c;得到2。 第二步#x…题目描述
写一个函数求两个整数之和要求在函数体内不得使用、-、*、/四则运算符号。
解题思路
首先看十进制是如何做的 5712三步走 第一步相加各位的值不算进位得到2。 第二步计算进位值得到10. 如果这一步的进位值为0那么第一步得到的值就是最终结果。 第三步重复上述两步只是相加的值变成上述两步的得到的结果2和10得到12。
同样我们可以用三步走的方式计算二进制值相加 5-1017-111
第一步相加各位的值不算进位得到010二进制每位相加就相当于各位做异或操作101^111。第二步计算进位值得到1010相当于各位做与操作得到101再向左移一位得到1010(101111)1。第三步重复上述两步 各位相加 010^10101000进位值为100(0101010)1。 继续重复上述两步1000^100 1100进位值为0跳出循环1100为最终结果。
代码实现
class Solution {
public:int Add(int num1, int num2){if(num20)return num1;//Add(二进制的和二进制的进位位)return Add(num1^num2, (num1num2)1);}
};