不使用中间变量,交换变量值

方法一:采用异或的方法

    b ^= a;

    a ^= b;

    b ^= a;

注:

1.异或法可以完成对整型变量的交换,对于浮点型变量它无法完成交换。

2.有说这种方式其实并没加快运行速度,http://blog.csdn.net/solstice/article/details/5166912

 

方法二:采用加减法

a += b;

b = a - b;

a -= b;

注:

1.可以交换整型和浮点型数值的变量,但在处理浮点型的时候有可能出现精度的损失

2.可能经验上的某种直觉告诉我们:加减法可能会溢出,其实不然,采用这种方法不会溢出。第一步的加运算可能会造成溢出,但它所造成的溢出会在后边的减运算中被溢出回来。

posted on 2015-01-14 15:46  Life's coding  阅读(357)  评论(0编辑  收藏  举报

导航