目录
思路分析
a ^ b // 不进位加法
(a & b)<<1 // 进位
本质上这样计算就可以,但是在计算机中要不断的循环
好好理解
循环几次呢? 最多32次,因为整数在计算机中存储就是32位
注意: 有关于位运算的题目,使用Python都不太方便!
cpp
class Solution {
public:
int add(int a, int b) {
while(b){
int c=(unsigned int)(a&b)<<1; // cpp不运行负数进行<<操作
a ^= b;
b = c;
}
return a;
}
};