承接上章整數編碼,本章討論位寬變換:擴展與截斷,並結合 C 語言隱式轉換陷阱。
有符號用補碼,無符號用無符號編碼。隱式轉換可能導致意外:
short i = -12345; unsigned short u = i;
u = 53191
-1 < 0U
截斷高位可能失真。無符號截斷等價於取模:x mod 2^k。補碼截斷同樣保留低位位模式。證明見圖:
x mod 2^k
理解擴展/截斷規則與 C 隱式轉換,能避免常見數值錯誤。
前言:優化的藝術與科學 優化是程式設計師永恆的追求——渴望程
指令分類表 leal 神奇用法:位址計算而非存取 mo
2.2 暫存器使用實戰 x86 暫存器是處理器內部高速儲存單
海明碼定義 資料校驗編碼。k 位資料位 + r 位冗餘校驗位