1. bitand xi
yi~xi
~yi~xi|~yi
~ (~xi|~yi)00
1110
0110
1010
0110
1100
01
int
bitand
(int x,
int y)
2. getbyteint
getbyte
(int x,
int n)
3. logicalshift
int
logicalshift
(int x,
int n)
4. bitcount
int
bitcount
(int x)
5. bangint
bang
(int x)
6. tminint
tmin
(void
)
7. fitsbits
int
fitsbits
(int x,
int n)
8. divpwr2
int
divpwr2
(int x,
int n)
9. negateint
negate
(int x)
10. ispositive
sign
!x!(x>>31)
result01
10p0
11n0
00
int
ispositive
(int x)
11. islessorequal
int
islessorequal
(int x,
int y)
12. ilog2
int
ilog2
(int x)
13. float_neg
unsigned
float_neg
(unsigned uf)
14. my_float_i2f
unsigned
my_float_i2f
(int x)
ux=ux<<
(cnt+1)
;/* 留下尾數部分 */
/* 進製的兩種情形:
* ux&0x1ff>0x100說明第9位和要捨入的第8位均為1,偶數捨入法最低有效位為0
* ux&0x3ff>=0x300說明要捨入的第8位為1且低八位大於0,超過一半 */if(
((ux&
0x1ff
)>
0x100)||
((ux&
0x3ff
)>=
0x300
))to_add=1;
return
(sign<<31)
+((127+31
-cnt)
<<23)
+(ux>>9)
+to_add;
}
15. float_twice
unsigned
float_twice
(unsigned uf)
深入理解計算機系統
關鍵路徑是在迴圈的反覆執行中形成的資料相關鏈。迴圈展開是一種程式變換,通過增加每次迭代計算的元素的數量,減少迴圈的迭代次數。重新結合變換能夠減少計算中關鍵路徑上操作的數量,通過更好地利用功能單元的流水線能力得到更好的效能。浮點運算不保證是可結合的,通常迴圈展開和並行地累積在多個值中,是提高程式效能的...
《深入理解計算機系統》
知乎 深入理解計算機系統 這本書需要什麼水平能看懂?15 213 18 218 15 513 introduction to computer systems schedule fall 2016 鏈結失效則 cmu15 213的課程主頁,有ppt,還有錄影,主講人就是這本書的作者。備註 備註 詳細...
深入理解計算機系統
系統的硬體組成 快取記憶體 作業系統管理硬體 程序虛擬記憶體 檔案amdahl定律 併發和並行 0和1組成的位序列,又稱為位元序列,8個位被組織成一組,成為位元組。每個位元組表示程式中的某些文字字元。系統中的所有資訊 包括磁碟檔案 記憶體中的程式 記憶體中存放的的使用者資料以及網路上傳送的資料,都是...