Sum of Two integers
Posted 学渣也要找工作!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sum of Two integers相关的知识,希望对你有一定的参考价值。
两个整数相加不能用加减
用位运算
假设两整数a=2和b=6,它们的二进制表示分别为010和110
sum=a^b表示两个二进制数相加不考虑进位:
010
^ 110
= 100
carry=(a&b)<<1表示两个二进数相加的进位
010
& 110
= 010
<<1
=100
递归地做sum^carry直到carry=0
代码(一行反而比较好理解):
int getSum(int a, int b) {
return b == 0 ? a : getSum(a ^ b, (a & b) << 1);
}
以上是关于Sum of Two integers的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode] 599. Minimum Index Sum of Two Lists