不用第三方变量如何交换两个数的值

来源:互联网 发布:捕鱼游戏源码搭建教程 编辑:程序博客网 时间:2024/05/03 03:55

          如果要交换两个变量的值,我们首先想到的就是定义一个第三方变量暂存其中一个变量的值:

        

         如果我们不使用第三方变量怎么交换两个变量的值呢?

         1.利用两数之和减去另一个数的方式:

        

         这样也能成功交换两个数的值,但这种方法,如果两个数很大,可能会超出类型范围,造成数据丢失精度。所以不常用。

         2.利用位运算 ^ (异或):

             异或的特点是:一个数据a与另一个数据b做异或运算之后,变成了另外一个数c,再读取这个数据就不是原来的数据了,我们如果再拿这个数据c和数据b异或一次,这个数据又变回原来的数据a。

             即:a^b^b=a;   a^b^a=b

             所以我们可以利用这个特点交换两个数据:

         

         异或运算不会产生进位,所以不会造成数据损失,并且异或运算是二进制之间的运算,效率也比较高,但是这种交换方式阅读性差。所以还是定义第三方变量比较常用

        


2 0
原创粉丝点击