程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 深入理解計算機系統第二版習題解答CSAPP 2.6,csapp2.6

深入理解計算機系統第二版習題解答CSAPP 2.6,csapp2.6

編輯:關於C語言

深入理解計算機系統第二版習題解答CSAPP 2.6,csapp2.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的位置不匹配。

 

後續了解浮點數存儲會更加明了。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved