首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

深入理解 C 語言浮點數指數偏移(Bias)機制

     編輯:程式設計綜合問答

背景

《深入理解計算機系統》中提到:浮點數指數值 E = e - Bias,其中 e 為無符號存儲值,Bias = 2^(k-1) - 1(單精度 127,雙精度 1023)。初學者常困惑:e 代表什麼?為何要減去 Bias?

實例解析(單精度)

以二進制表示:0 10000101 11101100000000000000000

  • 符號位:0(正數)
  • 指數域 e:10000101 = 133(十進制)
  • 尾數域:111011...(隱含前導 1,實際尾數 1.111011)

計算真實指數:E = e - Bias = 133 - 127 = 6

數值 = 1.111011 × 2^6 = 1111011.0 = 123

為什麼要用 Bias?

  • 指數域無符號,範圍 0~255。若直接存真實指數,無法表示負指數(即 <1 的數)。
  • 引入 Bias 後:e > 127 表示大數,e < 127 表示小數(負指數),e = 127 表示 2^0。
  • 可表示範圍擴展至 2^-126 ~ 2^127(保留全 0/全 1 為特殊值)。

總結:e 是存儲在指數域的無符號整數,Bias 將其平移到有符號範圍,實現對極大極小數的統一編碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved