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 尾數,代表這個數的小數部分,它可能...