位运算 交换2个数 异或运算


go     var swap func(a, b *int) = func(a, b *int) {         *a ^= *b         *b ^= *a         *a ^= *b     }   c void swap(int* a,int* b){     *a^=^*b=^*a=^*b; }     a                        0 0 1 1 b                        0 1 0 1 a1=a^b              0 1 1 0 b1=b^(a^b)        0 0 1 1 a2=a1^(b1^(a^b))   0 1 0 1   a^b=b^a b^(a^b)=b^a^b=b^b^a=a (a^b)^[b^(a^b)^(b)]=b   满足交换律    
bit