a,b互换,不使用中间变量

如果采用:a=a+b;b=a-b;a=a-b;可能越界

采用:

a=a^b;

b=a^b;

a=a^b;

例如:9,5

00001001^00000101=00001100        //1代表a和b不一样的位(不可共存,在这个位上,ab是相反的),

                                                       //0代表一样的位(可共存,ab相同),异或的结果 ,和a异或得b ,和b异或得a

00001100^00000101=00001001        //不一样的位,你有我就得没有,你没有我就得有,一样的位就不变啦

00001100^00001001=00000101

原文地址:https://www.cnblogs.com/anderson0/p/1848903.html