深入理解計算機系統5 1 2float

2021-10-10 11:54:00 字數 1252 閱讀 6688

題意:將int型轉化為float並以無符號形式返回

思路:0x359141

二進位制表示是[1101011001000101000001]

表示1.101011001000101000001x2^21

exp=127+21=148

小數字段:丟棄頭1並在尾部補0構成23位小數字段

10101100100010100000100

exp用二進位制表示[10010100]

符號位0

將三個連線在一起:

0 10010100 10101100100010100000100

就是我們要的值

向偶捨入

flag=0;

if((x&0x1ff

)>

0x100

)//出現在規定位置後大於0x100的情況就進1//

flag=1;

if((x&0x3ff)==

0x300

)//出現在最後一位為1,且下一位為1的情況也進1//

flag=

1;

向偶捨入可參考:

#include

unsigned

float_i2f

(int x)

sign=

(x>>31)

&0x01;if

(sign)

highbit=0;

//用於計數//

temp=x;

//用於計算與儲存//

while(!

(temp&

0x80000000))

temp=temp<<1;

exp=

127+

31-highbit;

frac=

31-highbit;

flag=0;

if((temp&

0x1ff

)>

0x100

) flag=1;

if((temp&

0x3ff)==

0x300

) flag=1;

rul=

(sign<<31)

+(exp<<23)

+(temp>>9)

+flag;

return rul;

}int

main()

深入理解計算機系統

關鍵路徑是在迴圈的反覆執行中形成的資料相關鏈。迴圈展開是一種程式變換,通過增加每次迭代計算的元素的數量,減少迴圈的迭代次數。重新結合變換能夠減少計算中關鍵路徑上操作的數量,通過更好地利用功能單元的流水線能力得到更好的效能。浮點運算不保證是可結合的,通常迴圈展開和並行地累積在多個值中,是提高程式效能的...

《深入理解計算機系統》

知乎 深入理解計算機系統 這本書需要什麼水平能看懂?15 213 18 218 15 513 introduction to computer systems schedule fall 2016 鏈結失效則 cmu15 213的課程主頁,有ppt,還有錄影,主講人就是這本書的作者。備註 備註 詳細...

深入理解計算機系統

系統的硬體組成 快取記憶體 作業系統管理硬體 程序虛擬記憶體 檔案amdahl定律 併發和並行 0和1組成的位序列,又稱為位元序列,8個位被組織成一組,成為位元組。每個位元組表示程式中的某些文字字元。系統中的所有資訊 包括磁碟檔案 記憶體中的程式 記憶體中存放的的使用者資料以及網路上傳送的資料,都是...