1.利用异或 ^ 来交换两个数的值,而且不引入其他变量。
unsigned int a=60; //0011 1100
unsigned int b=13; //0000 1101
a=a^b; //a=a^b=0011 0001
b=a^b; //b=a^b=0011 1100 相当于b1=(a^b)^b
a=a^b; //a=a^b=0000 1101 相当于a1=(a^b)^((a^b)^b)
本文介绍了一种使用异或运算符交换两个整数的方法,这种方法不需要额外的临时变量。通过三个步骤完成交换过程:首先将两个数进行异或运算,然后用得到的结果再次与其中一个数异或,最后再用该结果与另一个数异或即可实现两数的交换。
1.利用异或 ^ 来交换两个数的值,而且不引入其他变量。
unsigned int a=60; //0011 1100
unsigned int b=13; //0000 1101
a=a^b; //a=a^b=0011 0001
b=a^b; //b=a^b=0011 1100 相当于b1=(a^b)^b
a=a^b; //a=a^b=0000 1101 相当于a1=(a^b)^((a^b)^b)

被折叠的 条评论
为什么被折叠?