a == b ? 0 : a ^= b ^= a ^= b;
解释: 异或操作的相关性质,可以自己推导
第一步: a=a^b 现在a中记录下了原a和原b每位上相同不相同的标志(0代表相同1代表不同) 第二步:b=a^b 注意0^0=0 0^1=1 a中若第i位为0,则结果b中保留和原b一样, 但0又表示代表相同原a中第i位和原b第i位一样,所以结果b中第i位和原a中第i位一样 又1^0=1 1^1=0 a中若第i位为1,则结果b中第i位和原b第i位是相反的, 但1又表示代表相同原a中第i位和原b第i位不同,所以结果b中第i位和原a中第i位一样 这样第二步的结果新b就是原来的a 第三步和第二步是类似的,