用位运算符中的异或实现两数交换而不借助中间变量

算法目的:用位运算符中的异或实现两数交换,而不借助中间变量。

核心思想:a对b异或,得到的值再与a或者b异或,会得到b或者a的值。

 

算法:

定义两个变量a、b;

a = a ^ b;    //得到一个a^b的中间数并赋值给a

b = a ^ b;    //将已经是中间值的a再与b异或,这时候得到的值是a,将a的值赋给b

a = a ^ b;    //将已经是a原来值的b再与是中间值的a异或,得到b原来的值,赋值给a,交换完毕。

posted @ 2017-02-22 09:29  Xzzzh  阅读(318)  评论(0编辑  收藏  举报