不申请额外内存空间就可以完成数据互换的算法: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; |
相比之下还是位异或方法最好。