首页 > 编程语言 > 详细

剑指offer算法_位运算求和

时间:2016-10-02 19:31:40      阅读:217      评论:0      收藏:0      [点我收藏+]

不用+,-,*,/运算求和,可以分成三步:

1.计算两个数字的异或值,相当于只计算每一位的和,不计算进位,得出结果sum;

2.计算两个数字的与值,相当于求出两个数字的进位,然后左移一位,相当于进位,得出结果jw;

3.求sum和jw的和,步骤与1,2相同,直到进位jw==0停止计算;

 

扩展:

不申请额外内存实现两个变量值得交换:

方法一:

通过异或来实现;

  a=a^b;

  b=a^b;

  a=a^b;

方法二:

通过加减运算实现;

  a=a+b;

  b=a-b;

  a=a-b;

 

剑指offer算法_位运算求和

原文:http://www.cnblogs.com/coderxiaocai/p/5927882.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!