深入理解计算机系统第二版习题解答CSAPP 2.10
对于任一位向量a,有a ^ a = 0。考虑下面的程序:
void inplace_swap(int *x, int *y)
{
*y = *x ^ *y;
*x = *x ^ *y;
*y = *x ^ *y;
}
假设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的更多相关文章
- 深入理解计算机系统第二版习题解答CSAPP 2.12
对于下面的值,写出变量x的C语言表达式.代码应该对任何字长w≥8都能工作.我们给出当x=0x87654321以及w=32时表达式的结果,仅供参考. A.x的最低有效字节,其他位均为0.[0x00000 ...
- 深入理解计算机系统第二版习题解答CSAPP 2.11
在2.10中的inplace_swap函数的基础上,你决定写一段代码,实现将一个数组中的元素两端依次对调,你写出下面这个函数: void reverse_array(int a[], int cnt) ...
- 深入理解计算机系统第二版习题解答CSAPP 2.20
T2Uw(w)=x, x≥0时 T2Uw(w)=x+2w, x<0时 利用上面的公式,重新计算2.19的问题.
- 深入理解计算机系统第二版习题解答CSAPP 2.19
在2.17的基础上完成下表: x 十六进制 T2U(x) -8 0x8 -3 0xD -2 0xE -1 0xF 0 0x0 5 0x5
- 深入理解计算机系统第二版习题解答CSAPP 2.18
将32位补码表示的数转换为10进制数. 32位补码 十进制 0x1b8 0x14 0xFFFFFE58 -424 0xFFFFFE74 -396 0x44 0xFFFFFEC8 -312 0x10 0 ...
- 深入理解计算机系统第二版习题解答CSAPP 2.17
假设w=4,我们能给每个可能的十六进制数字赋予一个数值,假设用一个无符号或者补码表示.完成下表: x 无符号(B2U(x)) 补码(B2T(x)) 十六进制 二进制 0xE 1110 14 -2 0x ...
- 深入理解计算机系统第二版习题解答CSAPP 2.16
填写下表,说明不同移位运算对单字节数的影响. x x<<3 x>>2(逻辑) x>>2(算术) 十六进制 二进制 二进制 十六进制 二进制 十六进制 二进制 十六进 ...
- 深入理解计算机系统第二版习题解答CSAPP 2.15
只使用位级运算和逻辑运算,编写一个C表达式,它等价于x==y.换句话说,当x和y相等时它将返回1,否则就返回0. !(x ^ y)
- 深入理解计算机系统第二版习题解答CSAPP 2.14
假设x和y的字节值分别为0x66和0x39.填写下表,指明各个C表达式的字节值. 0x66 = 0110 0110(B) 0x39 = 0011 1001(B) 表达式 值 x & y 0x2 ...
随机推荐
- We need the sql script to query the table Ditronics.Kiosk.Journal to find journal with mismatch denom information versus amount.
CREATE TABLE #MoneyTable ( Id , ) PRIMARY KEY , MoneyName ) , Cents INT ) INSERT INTO #MoneyTable ( ...
- 为Virtualbox中的Solaris10安装VBoxAdditions
安装增强插件,以便能够和虚拟机拖放文件 1.启动虚拟系统,选择安装VirtualBox增强功 能(Guest Additions).在VirtualBox中选择“设备”->“安装增强功能”.Vi ...
- 修改首页的main里面的内容
进入后台--cms--page: 找到home的页面,进入内容,可以看到右边的显示内容为: main里面的内容如下: <div class="slideshow-container&q ...
- 【转载】/etc/passwd & /etc/shadow 详解
转载自:http://blog.csdn.net/snlying/article/details/6130468 1,passwd文件passwd文件存放在/etc目录下.这个文件存放着所有用户帐号的 ...
- jQuery遍历多层json数据
1.json与jsonp的区别(待查) 2.要遍历的数据如下: {"status": "ok", "code": 200, "da ...
- Java持久化存储对象Properties的方法list、store、load
package FileDemo; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStrea ...
- 74LS164 for stm32 源码下载
在单片机系统中, 如果并行口的IO资源不够,而串行口又没有其他的作用, 那么我们可以用74LS164来扩展并行IO口,节约单片机资源. 74LS164是一个串行输入并行输出的移位寄存器 ...
- Jquery ajax 得到返回值
Jquery ajax 得到返回值 1.ajax默认是异步调用的,所以得到的返回值是空值,要得到值必须改成同步:async: false,//同步. 2.必须定义一个全局变量 var result = ...
- OpenCV入门学习笔记
OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...
- 高性能javascript
高性能javascript开发 标签(空格分隔): javascript DOM访问与修改 访问DOM元素是具有代价的,修改元素代价较为昂贵,会导致浏览器重新计算页面的几何变化. 尽量减少DOM访问, ...