void inplace_swap(int *a, int *b)
{
*a = *a ^ *b; // step1
*b = *a ^ *b; // step2
*a = *a ^ *b; // step3
}
/*
*已知: a ^ a = 0;
*value *a *b
*step0 a b
*step1 a^b b
*step2 a^b ab^b
*step3 a^a(^^b) a
*/
使用 ^ 位运算符交换值的细节
最新推荐文章于 2022-01-12 15:01:26 发布