public static void main(String[] args) {
int sum = getBitSum(100,200);
System.out.println(sum);
}
//a^b 不进位相加
//(a&b) <<1 进位
//(a^b) ^ ((a&b) <<1) 进位相加
//为什么需要循环呢,
//因为当把进位相加后,有可能产生新的进位,因此只有当进位为0的时候才是加完了;
public static int getBitSum(int a,int b){
int carry = 0;
while (b!= 0){
carry = (a&b)<<1;
a = a^b;
b = carry;
}
return a;
}