coderxiaocai

剑指offer算法_位运算求和

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

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;

 

posted on 2016-10-02 18:18  Coder小菜  阅读(840)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2019-05-16
  • 2020-03-24
  • 2019-06-20
  • 2021-09-19
  • 2021-09-20
  • 2021-11-21
  • 2021-08-27
  • 2019-05-17
猜你喜欢
  • 2021-09-19
  • 2021-12-14
  • 2021-12-05
  • 2020-02-15
  • 2021-09-05
  • 2020-04-18
  • 2021-11-14
相关资源
相似解决方案