用浮點(diǎn)表示一個(gè)數(shù)——練習(xí)題2.52解答

《深入理解計(jì)算機(jī)系統(tǒng)(原書(shū)第2版)》第2章信息的表示和處理

練習(xí)題2.52 考慮下列基于IEEE浮點(diǎn)格式的7位浮點(diǎn)表示。兩個(gè)格式都沒(méi)有符號(hào)位——它們只能表示非負(fù)的數(shù)字。
1.格式A
有k=3個(gè)階碼位。階碼的偏置值是3。
有n=4個(gè)小數(shù)位。
2.格式B
有k=4個(gè)階碼位。階碼的偏置值是7。
有n=3個(gè)小數(shù)位。
下面給出了一些格式A表示的位模式,你的任務(wù)是將它們轉(zhuǎn)換成格式B中最接近的值。如果需要,請(qǐng)使用舍入到偶數(shù)的舍入原則。另外,給出由格式A和格式B表示的位模式對(duì)應(yīng)的數(shù)字的值。給出整數(shù)(例如17)或者小數(shù)(例如17/64)。


image.png

101 1110的轉(zhuǎn)換

位101 1110對(duì)應(yīng)的數(shù)字的值為15/2,這個(gè)很簡(jiǎn)單,就不贅述了。這里講一下怎么將15/2轉(zhuǎn)為格式B。

在這道習(xí)題之前,P74頁(yè)已經(jīng)有一個(gè)將整數(shù)值轉(zhuǎn)換成浮點(diǎn)形式的實(shí)例了:

在圖2-14中我們看到12 345具有二進(jìn)制表示[11000000111001]。通過(guò)將二進(jìn)制小數(shù)點(diǎn)左移13位,我們創(chuàng)建這個(gè)數(shù)的一個(gè)規(guī)格化表示,得到12345 = 1.10000001110012×2^13。為了用IEEE單精度形式來(lái)編碼,我們丟棄開(kāi)頭的1,并且在末尾增加10個(gè)0,來(lái)構(gòu)造小數(shù)字段,得到二進(jìn)制表示 [10000001110010000000000]。為了構(gòu)造階碼字段,我們用13加上偏置量127,得到140,其二進(jìn)制表示為[10001100]。加上符號(hào)位0,我們就得到二進(jìn)制的浮點(diǎn)表示[01000110010000001110010000000000]。

參考以上轉(zhuǎn)換流程,對(duì)101 1110處理如下:

  1. 15具有二進(jìn)制表示[1111]
  2. 15/2的二進(jìn)制表示[111.1]
  3. 將二進(jìn)制小數(shù)點(diǎn)左移2位,得到1.111x2^2
  4. 丟棄開(kāi)頭的1,構(gòu)造小數(shù)字段,得到二進(jìn)制表示[111]
  5. 構(gòu)造階碼字段,用2加上偏置量7,得到9,其二進(jìn)制表示為[1001]
  6. 最后得到格式B的浮點(diǎn)表示:[1001 111]

010 1001的轉(zhuǎn)換

010 1001的值為25/32,同樣的流程處理:

  1. 25具有二進(jìn)制表示[11001]
  2. 25/32的二進(jìn)制表示1.1001x2^-1
  3. 由于格式B只能表示3個(gè)小數(shù)位,舍入到偶數(shù)得到1.100x2^-1
  4. 丟棄開(kāi)頭的1,構(gòu)造小數(shù)字段,得到二進(jìn)制表示[100]
  5. 構(gòu)造階碼字段,用-1加上偏置量7,得到6,其二進(jìn)制表示為[0110]
  6. 最后得到格式B的浮點(diǎn)表示:[0110 100]

110 1111的轉(zhuǎn)換

110 1111的值為31/2,流程如下:

  1. 31具有二進(jìn)制表示[11111]
  2. 31/2的二進(jìn)制表示1.1111x2^3
  3. 由于格式B只能表示3個(gè)小數(shù)位,1.11110做舍入到偶數(shù)為1.000x2
  4. 31/2的舍入后表示為1.000x2^4
  5. 丟棄開(kāi)頭的1,構(gòu)造小數(shù)字段,得到二進(jìn)制表示[000]
  6. 構(gòu)造階碼字段,用4加上偏置量7,得到11,其二進(jìn)制表示為[1011]
  7. 最后得到格式B的浮點(diǎn)表示:[1011 000]

000 0001的轉(zhuǎn)換

000 0001的值為1/64

  1. 1/64具有二進(jìn)制表示1.000x2^-6
  2. 丟棄開(kāi)頭的1,構(gòu)造小數(shù)字段,得到二進(jìn)制表示[000]
  3. 構(gòu)造階碼字段,用-6加上偏置量7,得到1,其二進(jìn)制表示為[0001]
  4. 最后得到格式B的浮點(diǎn)表示:[0001 000]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容