阅读 58

leetcode 371 两数加法

用位运算来实现该问题,用异或可以实现无符号的加法操作,然后需要使用与运算来实现进位,而负数因为是补码的形式存储所以能够得到正确的处理,十分巧妙的方法,贴代码。

 1 class Solution {
 2 public:
 3     int getSum(int a, int b) 
 4     {
 5         while(b!=0)
 6         {
 7             unsigned int carry = (unsigned int)(a&b)<<1;
 8             a^=b;
 9             b = carry;
10         }
11         return a;
12     }
13 };

 

原文:https://www.cnblogs.com/zhaohhhh/p/15267376.html

文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐