1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > LeetCode:位运算实现加法

LeetCode:位运算实现加法

时间:2023-03-05 13:13:02

相关推荐

LeetCode:位运算实现加法

LeetCode:位运算实现加法

写在前面

位运算符

实现加法的思路

两个加数,比如5(101)和6(110),如何不用加法就能得出两者之和呢?

我们知道二进制计算中,如果使用异或将会产生无进位的两者之和,而两数相与将会产生进位值!!!

可这样又如何呢?

1 sum = 0112 carry =1000

两者继续异或将会产生

结果就出现了,此时无进位,所以进位为0时,sum将会为最终结果!因为此时不需要进位,异或运算就是最终结果!

优质代码

1public int getSum(int a, int b) {2 while(b!=0)3 {4 int carry = a&b;5 a=a^b;6 b=carry<<1;7 }8 return a;9}

参考链接

/awangdev/LintCode/blob/master/Java/A%2BB.java

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。