不申请额外内存空间就可以完成数据互换的算法:int x=a,y=b;设计一个算法,不申请第三个变量,试把a b互换位置 (按位异或)

经过microsoftmvp的指点学到这个方法

1
2
3
x^=y;
y^=x;
x^=y;

^是位异或操作符,在每个位的位置,如果两个操作数对应的位只有一个(不是两个)为1,则操作结果中该位为1,否则为0。

 

另外还学到一种方法,不过遇到值为0就不行了(除数不能为0)

 

1
2
3
a=a*b;
b=a/b;
a=a/b;


相比之下还是位异或方法最好。

posted @ 2013-07-27 09:24  小名辉辉  阅读(144)  评论(0编辑  收藏  举报