深入理解计算机系统第二版习题解答CSAPP 2.6

使用打印字节的方式可以知道十进制数12345的十六进制为0x00003039,十进制浮点数12345.0的十六进制为0x4640E400。

转换为二进制为

1 /*
2        0   0   0   0   3   0   3   9
3     00000000000000000011000000111001
4                        *************
5                  4   6   4   0   E   4   0   0
6               01000110010000001110010000000000
7 
8 */

移动后有13位匹配。

已知十进制数3510593的十六进制为0x00359141,十进制浮点数3510593.0的十六进制为0x4A564504。

A.写出上面两个数对应的二进制表示。

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

C.串中的什么位置不匹配。

 

1 /*
2        0   0   3   5   9   1   4   1
3  00000000001101011001000101000001 4  ********************* 5  4 A 5 6 4 5 0 4 6  01001010010101100100010100000100 7 8 */

 A. 

1 /*
2 0x00359141
3 0000 0000 0011 0101 1001 0001 0100 0001
4 
5 0x4A564504
6 0100 1010 0101 0110 0100 0101 0000 0100
7 */

B.21位匹配

C.直观来说:对浮点数来说前9位及最后2位不匹配。

对整型数来说从高位到第1位不为0的位置不匹配。

 

后续了解浮点数存储会更加明了。

 

转载于:https://www.cnblogs.com/furzoom/p/CSAPP2_6.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值