https://leetcode.com/problems/sum-of-two-integers/description/
비트연산자가 익숙하지는 않아 솔루션 참고한다.
Carry값을 찾으려면 AND 연산을 하면 되고
XOR 연산을 하면 캐리 고려하지 않고 합계를 계산할 수 있다고 한다.
캐리를 찾았으면 시프트연산해서 자릿수를 올려주고
더이상 캐리가 존재하지 않을 때까지 반복해주면 덧셈을 할 수 있다.
class Solution {
public int getSum(int a, int b) {
while (b != 0) {
int carry = a & b;
a = a ^ b;
b = carry << 1;
}
return a;
}
}