首页 > 代码库 > 深入理解计算机系统第二版习题解答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 |
初始 | a | b |
第一步 | a | a^b |
第二步 | a^(a^b) | a^b |
第三步 | a^(a^b) | a^(a^b)^(a^b) |
由于异或运算满足交换率和结合率,且a ^ 0 = 0, a ^ = ~a。所以有
步骤 | *x | *y |
初始 | a | b |
第一步 | a | a^b |
第二步 | b | a^b |
第三步 | b | a |
深入理解计算机系统第二版习题解答CSAPP 2.10
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。