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
標準浮點數的儲存格式與圖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
這裡不同的下標代表不同的進位制。
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
這裡不同的下標代表不同的進位制。