如何理解並使用IEEE表示法

2021-10-11 09:25:30 字數 1668 閱讀 5940

ieee浮點標準:v = (-1)^s * m * 2^e

以值v為例:

ieee表示為:| 0 | 100 0010 1 | 111 1010 0000 0000 0000 0000 |

對應字段: | s | exp | frac |

所佔位數: 1 + (k=8) + (n=23) =32

ieee表示法其實就是"一點幾"表示法

指數字段

exp = 1000 0101

= 133

單精度偏置值

bias = 2^(k-1) - 1

= 127(雙精度為1023)

階碼值

e = exp -bias

= 6階碼e的值為6

在此 2 ^ e 是表示(2 ^ 6) = 64

而125以二進位制表示是 1111 1101

其最大的一位,正是 1000 0000 即64

將這個64作為計量v的單位

則能將值v用一點幾個64表示

值v用一點幾個2^e表示

就是ieee表示法的核心

小數字段

frac = 111 1010 0000 0000 0000 0000

= 0x7a0000

將多餘的0省去

此時frac = 111 101 = 61

尾數m為非規格化數時 m =f = frac/2^e

為規格化數時 m = 1+f

此時為規格化數 m = 1+f = 1 + 63/64

這個f就是我們需要的"點幾"了

可知值v被以ieee表示法表示為"1+63/64"個64

所以v = (1+63/64) * 64 = 125

而小於一的數,則是以零點幾個一的思想去看待

數+125

正數 符號s置為0

125按位表示是 1111 1101

分離為頂位 1000 0000 = 2^7

和餘位 111 110

頂位代表一點幾表示的 **一** 也就是 2^e

由此可知e = 7

exp = e + bias = 132 = 1000 0101

餘位就是 frac 字段

為其後面補足0

則+125按 ieee表示為0 | 100 0010 1 | 111 1010 0000 0000 0000 0000 |

快速轉換↓

再例

數+35

按位表示為 0010 0011

頂位為2^e 10 0000 = 2^5

餘位為 frac 0 0011 = 3

exp = 5 + 125 = 130 = 1000 0100

拼接得其ieee表示為 | 100 0010 0 | 000 1100 0000 0000 0000 0000 |

IEEE浮點表示法

目錄 1 簡介 2 float規格 3 轉換例子 內容 1 簡介 目前已知的c c 編譯器都是按照ieee 國際電子電器工程師協會 制定的ieee浮點數表示法來進行運算的。這種結構是一種科學表示法,用符號 或 指數和尾數來表示,底數被確定為2。所以在ieee浮點數表示法裡,乙個浮點數為尾數乘以2的指...

析IEEE浮點數表示法

眾所周知,計算機中的所有資料都是以二進位制表示的,浮點數也不例外。然而浮點數的二進位制表示法卻不像定點數那麼簡單了。先澄清乙個概念,浮點數並不一定等於小數,定點數也並不一定就是整數。所謂浮點數就是小數點在邏輯上是不固定的,而定點數只能表示小數點固定的數值,具用浮點數或定點數表示某哪一種數要看使用者賦...

csapp讀書筆記之IEEE浮點表示法

通過普通的定點表示法不能有效表示非常大的數字。例如表示式5 2 100是101後面跟了100個0,我們希望使用一種更簡潔高效的辦法表示,ieee浮點表示應運而生。以下是將會出現的符號含義 v 你要表示的十進位制數。s 符號位,0表示這是個正數,1表示這是個負數。m 尾數,代表這個數的小數部分,它可能...