題意:將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個位被組織成一組,成為位元組。每個位元組表示程式中的某些文字字元。系統中的所有資訊 包括磁碟檔案 記憶體中的程式 記憶體中存放的的使用者資料以及網路上傳送的資料,都是...