首页 > 代码库 > 深入理解计算机系统第二版习题解答CSAPP 2.10

深入理解计算机系统第二版习题解答CSAPP 2.10

对于任一位向量a,有a ^ a = 0。考虑下面的程序:

1 void inplace_swap(int *x, int *y)2 {3     *y = *x ^ *y;4     *x = *x ^ *y;5     *y = *x ^ *y;6 }

假设x和y指向的位置分别是a和b。完成下表:

步骤*x*y
初始ab
第一步aa^b
第二步a^(a^b)a^b
第三步a^(a^b)a^(a^b)^(a^b)

 由于异或运算满足交换率和结合率,且a ^ 0 = 0, a ^   = ~a。所以有 

步骤*x*y
初始ab
第一步aa^b
第二步ba^b
第三步ba

深入理解计算机系统第二版习题解答CSAPP 2.10