不用加减乘除做加法
题目描述: 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路:采用位运算,首先求两数的异或值,异或值代表着不产生进位的两数和,然后再求两数相与值,相与左移一位代表着两数相加产生进位的值。以此循环,直到相与的值为0。
代码:
class Solution {
public:
int Add(int num1, int num2)
{
int result = num1^num2;
int temp = num1&num2;
while (temp != 0){
temp=temp << 1;
int result1 = result;
result = result1^temp;
temp = result1&temp;
}
return result;
}
};
本文介绍了一种不使用传统加减乘除运算符实现两整数相加的方法,通过位运算中的异或和与操作,结合进位逻辑,巧妙地实现了加法功能。
3万+

被折叠的 条评论
为什么被折叠?



