题解
- 在二进制运算中,对于某一位来讲:
a ∧ b : 表 示 a + b 的 本 位 a \wedge b:表示a+b的本位 a∧b:表示a+b的本位
a & b : 表 示 a + b 应 该 进 的 位 a\ \&\ b:表示a+b应该进的位 a & b:表示a+b应该进的位 -
a
&
b
<
<
1
:
表
示
进
位
之
后
a\ \&\ b <<1:表示进位之后
a & b<<1:表示进位之后
AC-Code
class Solution {
public:
int Add(int num1, int num2) {
while(num2 != 0) {
int x = (unsigned int)(num1 & num2) << 1; // 进位
num1 ^= num2; // 本位相加
num2 = x; // 记录进位
}
return num1;
}
};