計算機中的實數編碼


IEEE 754標准制定了32位單精度浮點數和64位雙精度浮點數格式,目前幾乎所有計算機都采用IEEE 754標准來表示浮點數。

IEEE 754 標准下的浮點格式為:符號(最高位) 指數 有效數字

  • 單精度 1 符號位, 8位指數, 23位有效數字, 共32位數字
  • 雙精度 1 符號位, 11位指數, 52位有效數字, 共64位數字

其中:

  • 符號位1表示負數, 0表示正數
  • 指數位也被稱為階碼, 恆為整數,使用偏移碼表示

浮點階碼:

IEEE 754標准中的指數也被稱為階碼,采用移碼表示,移碼與補碼相似僅符號位相異(補碼1為負號,移碼1為正號)
移碼格式:1位符號位 其余為 真值+\(2^{N-1}\), 其中N表示位數
例:

# 8位編碼下的127,偏移碼為127+127=0111 1111B+0111 1111B=1111 1110B
# 8位編碼下的-10,偏移碼為-10+127=111 0101B
# 單精度浮點數據為8位, 雙精度為11位

有效數字

以100.25位例

# 整數部分直接轉化成2進制
# 100=110 0100B
# 小數部分采用除2取整法(0.25x2=0.5取0,0.5x2=1取1,除到沒有小數即可,結果為01)
# 0.25=01
# 科學計數法
# 100.25 = 110 0100.01B = 1.1001 0001B x 2^6
# 舍棄整數部分的1
# 結果為 1001 0001

【例子】把100.25轉化成浮點數據格式

  1. 100.25=0110 0100.01B=1.1001 0001Bx2^6 於是得出符號位為0
  2. 指數部分為6, 所以8位的階碼為6+127=133=1000 0101
  3. 有效數字部分為 1001 0001 0000 0000 0000 000
  4. 組合在一起: 0 10000101 1001 0001 0000 0000 0000 000 B = 0x 42C88000

如有錯漏,望指正


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM