随笔分类 - 深入理解计算机系统
【深入理解计算机系统-第二版】3.66习题
摘要:题目:You are charged with maintaining a large C program, and you come across the following code: 1 typedef struct { 2 int left; 3 a_struct a[CNT]; 4 int right; 5 } b_struct; 6 7 void test(int i, b_struct *bp) 8 { 9 int n = bp->left + bp->right;10 a_struct *ap = &bp->a[i];11 ap->x[ap-&g
阅读全文
【深入理解计算机系统-第二版】3.55习题
摘要:深入理解计算机系统(英文版 第二版)中的第三章家庭作业3.55想了一个晚上也没有想出来到底是怎么回事。百度也没有百度出结果,而用google搜索相关内容,终于找到了其中的“猫腻”。如果想要直接看,则点击下面链接。http://stackoverflow.com/questions/11680720/implement-64-bit-arithmetic-on-a-32-bit-machine书中,3.55题在P329页,题目略有不同,但原理一致。The following code computes the product of x and y and stores the result in
阅读全文
【深入理解计算机系统-第二版】第二章部分家庭作业(Homework)参考答案
摘要:这几天一直在写《深入理解计算机系统》第二版中第二章的家庭作业,费了几天的时间,终于完成了。当初碰到若干题不会,在网上也没有搜索到答案。现在,我把这份自己完成的答案分享上来,与大家交流思想。其中错误一定会存在,如果有错误,希望指出来,共同进步。2.67A:左移位数大于等于int长度。B:可以考虑用两次左移来实现<<32:int set_msb=1<<31;int beyond_msb=set_msb<<1;C:可以考虑用三次左移来实现<<31与<<32:int temp=1<<15;temp<<=15;int s
阅读全文