20135324家庭作业汇总(2.68、2.70与20135330合作,4.58、6.32与20135332合作)
习题2.68、习题2.70(20135324&&20135330合作)
2.68题目:写出具有如下原型的代码
/
Clear all but least signficant n bit of x
Examples:x = 0x78abcdef,n = 8--> 0xef,n = 16 -->0xcdef;
Assume 1<= n <= w
*/
int lower_bits(int x,int n)
函数应该遵循位级整数编码规则
代码截图:
运行结果:
家庭作业2.70
题目:写出具有如下原型的代码
/
Return 1 when x can be respresented as an n-bit,2'scomplement
number;0 otherwise
Assume1 <= n <=w;
*/
函数应遵循整数编码规则
代码截图:
运行结果
习题4.58、6.32与20135332合作
4.58题目:比较两个版本的冒泡排序的性能(家庭作业4.45和家庭作业4.46)解释为什么一个版本的性能比另一个版本的好。
答案:这道题目是基于前面两个题的答案来进行分析:版本1(4.45),在预测正确的情况下执行7条指令,预测错误时执行9条指令并插入一个bubble;而版本2,执行8条指令,但是在外部循环需要多执行3条指令,否则就需要多用一个寄存器。 光从内循环看来,版本2平均执行次数比版本1要少,因为可以假设预测错误的概率是50%.
6.32习题:假设程序使用作业6.31中的高速缓存,引用位于地址0x0718处的1字节字。用十六进制表示出它所访问的高速缓存条目,以及高速缓存返回的字节值。指明是否发生了高速缓存不命中。如果有高速缓存不命中,对于“返回的高速缓存字节”输入“——”。
A. 地址格式(每个小框标一位):
0x0718
12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 1 1 0 0 0 1 1 0 0 0
B. 存储器引用:
参数 值
块偏移CO 0x00
索引CI 0x6
标记CT 0x38
命中? Yes
返回值 0xFA