回覆列表
  • 1 # 使用者6333892743394

    IEEE754程式碼

    標準表示法

    為便於軟體的移植,浮點數的表示格式應該有統一標準(定義)。1985年IEEE(Institute of Electrical and Electronics Engineers)提出了IEEE754標準。該標準規定基數為2,階碼E用移碼錶示,尾數M用原碼錶示,根據原碼的規格化方法,最高數字位總是1,該標準將這個1預設儲存,使得尾數表示範圍比實際儲存的一位。實數 的IEEE754標準的浮點數格式為:

    具體有三種形式:

    表3 IEEE754三種浮點數的格式引數

    浮點數

    型別 儲存位數 偏移值( )

    階碼E的取值範圍 真值表達式

    數符(s) 階碼(E) 尾數(M) 總位數 十六進位制 十進位制

    短實數 1 8 23 32 7FH 127 1~254

    長實數 1 11 52 64 3FFH 1023 1~2046

    臨時實數 1 15 64 80 3FFFH 16383 1~32766

    對於階碼為0或為255(2047)的情況,IEEE有特殊的規定。

    在浮點數總位數不變的情況下,其精度值與範圍值是矛盾的,因此一般的機器都提供有單、雙精度兩種格式。表4中列出了IEEE754單精度浮點數的表示範圍,對於雙精度只需要修改一下偏移值和尾數位數即可。

    表4 IEEE754單精度、雙精度浮點數範圍

    典型範圍 浮點數程式碼 真 值

    數符(Ms) 階碼(E) 尾數(M)

    最大正數

    最小正數

    絕對值最大的負數

    絕對值最小的負數 0

    0

    1

    1 11111110

    00000001

    11111110

    00000001 11………11

    00………00

    11………11

    00………00

    標準浮點數的儲存格式與圖1(b)相似,只是在尾數中隱含儲存著一個1,因此在計算尾數的真值時比一般形式要多一個整數1。對於階碼E的儲存形式因為是127的偏移,所以在計算其移碼時與人們熟悉的128偏移不一樣,正數的值比用128偏移求得的少1,負數的值多1,為避免計算錯誤,方便理解,常將E當成二進位制真值進行儲存。例如:將數值-0.5按IEEE754單精度格式儲存,先將-0.5換成二進位制並寫成標準形式:-0.510=-0.12=-1.0×2-12,這裡s=1,M為全0,E-127=-1,E=12610=011111102,則儲存形式為:

    1 01111110 000000000000000000000000=BE00000016

    這裡不同的下標代表不同的進位制。

  • 中秋節和大豐收的關聯?
  • 演過福爾摩斯的男演員?