*2.91遵循位級浮點編碼規則,實現具有如下原型的函式:
/* compute |f|. if f is nan ,then return f. */
float_bits float_absval (float_bits f);
對於浮點數f,這個函式計算|f|。如果f是nan,你的函式應該簡單地返回f。
測試你的函式,對引數f可以取的所有2^32個值求值,將結果與你使用機器的浮點運算得到的結果相比較。
解題過程
****2.95遵循位級浮點編碼規則,實現具有如下原型的函式:
/* compute (float) i */
float_bits float_i2f (int i);
對於引數i,這個函式計算(float)i的位級表示。
測試你的函式,對引數f可以取的所有2^32個值求值,將結果與你使用機器的浮點運算得到的結果相比較。
解題過程
深入理解計算機系統 第二章
1 什麼是規格化的值?當exp的位模式既不全為0,也不全為1,這種情況下,階碼字段被解釋為以偏置形式表示的有符號整數,也就是說,階碼的值是e e bias,其中e是無符號數,其位表示為,而bias就是乙個等於2k 1 1的 偏置值。2 什麼是非規格化的值?當階碼域全為0時,所表示的就是非規格化的形式...
《深入理解計算機系統》第二章部分習題
人生第一篇博文。深入理解計算機系統 第二章部分習題 2.62 int shifts are arithmetic 對int型別數使用算術右移返回1,否則返回0 顯然,只需考慮負數即可 非負數算術右移與邏輯右移相同 這裡以 1為例,1算術右移一位,所產生的二進位製碼代表的數值不變 而邏輯右移則會使最高...
深入理解計算機系統
關鍵路徑是在迴圈的反覆執行中形成的資料相關鏈。迴圈展開是一種程式變換,通過增加每次迭代計算的元素的數量,減少迴圈的迭代次數。重新結合變換能夠減少計算中關鍵路徑上操作的數量,通過更好地利用功能單元的流水線能力得到更好的效能。浮點運算不保證是可結合的,通常迴圈展開和並行地累積在多個值中,是提高程式效能的...