ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CSAPP 第2章 练习题2.1~2.6

2019-04-02 18:48:33  阅读:922  来源: 互联网

标签:练习题 十六进制 CSAPP show 二进制 0100 大端法 2.1


练习题2.1 完成下面的数字转换:

A. 将0x39A7F8转换位二进制

B. 将二进制1100100101111011转换为十六进制

C. 将0xD5E4C转换二进制

D. 将二进制1001101110011110110101转换为十六进制

解: A. 0011-1001-1010-0111-1111-1000         B. 0xC97B

        C. 1101-0101-1110-0100-1100                  D. 0x26E7B5

练习题2.2 填写下表中的空白项,给出2的不同次幂的二进制和十六进制表示:

练习题2.3 一个字节可以用两个十六进制数来表示。填写下表中缺失的项,给出不同字节模式的十进制,二进制和十六进制值:

解:

练习题2.4 不将数字转换为十进制或者二进制,试着解答下面的算术题,答案要用十六进制表示。

A. 0x503C + 0x8 =  ______________

B. 0x503C - 0x40 = ______________

C. 0x503C + 64    = ______________

D. 0x50EA - 0x503C = ____________

解:

A. 0x5044       B. 0x4F9C     C. 0x507C          D. 0xAF

练习题2.5 思考下面对show_bytes的三次调用:

int val = 0x87654321;
byte_pointer valp = (byte_pointer) &val;
show_bytes(valp, 1);    // A.
show_bytes(valp, 2);    // B.
show_bytes(valp, 3);    // C.

指出在小端法机器和大端法机器上,每次调用的输出值。

A.  小端法:________       大端法:________

B.  小端法:________       大端法:________

C.  小端法:________       大端法:________

解:A. 小端法:21                大端法:87

       B. 小端法:21 43           大端法:87 65

       C. 小端法:21 43 65      大端法:87 65 43

        这是基于qemu模拟器的实现

练习题2.6 使用show_int和show_float,我们确定整数3510593的十六进制表示为0x00359141,而浮点数3510593.0的十六进制表示为0x4A564504。

A. 写出这两个十六进制值的二进制表示。

B. 移动这两个二进制串的相对位置,使得它们匹配的位数最多。有多少位相匹配呢?

C. 串中的什么部分不相匹配?

解:

A.   0x00359141       0000 0000 0011 0101 1001 0001 0100 0001

       0x4A56504        0100 1010 0101 0110 0100 0101 0000 0100

B.  0000 0000 0011 0101 1001 0001 0100 0001

        0100 1010 0  1 0101 1001 0001 0100 0001  00

共有21位相匹配

C.  我们发现除了最高有效位1,整数的所有位都嵌在浮点数中。这正好也是书中示例的情况。另外,浮点数有一些非零的高位不与整数中的高位相匹配

练习题2.7 下面对show_bytes的调用将输出什么结果?

const char *s = "abcdef";
show_bytes((byte_pointer) s, strlens(s));

 注意字母 ‘a' ~ 'z' 的ASCII码为0x61~0x7A

解:输出 61 62 63 64 65 66(库函数strlen不计算终止的空白符,所以show_bytes只打印到字符 ’f' )

标签:练习题,十六进制,CSAPP,show,二进制,0100,大端法,2.1
来源: https://blog.csdn.net/TanguanhuaD/article/details/88959490

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有