Re: [理工] 計算機結構 IEEE754格式

看板Grad-ProbAsk作者 (白飯)時間12年前 (2013/08/31 19:31), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《dearwen61 (Water Blue)》之銘言: : 請計算出用IEEE754 單精準浮點數能表示的最大與最小的正數。以下為IEEE754 : 二進位浮點數表示法。 : Value = (-1)^S × (1+Significant)×2^(Exponent-127) : 其中S為1bit,Significant為23bit,Exponent為8bit : 小弟想請教一下,關於Exponent的部分 : 最大正數時,Exponent取255然後再扣掉127=128這樣對嗎? : 而最小正數時,Exponent取0然後再扣掉127=-127這樣對嗎? : 這部分小弟有一些疑惑,故想確認一下想法正確與否 : 有勞高手為小弟解惑了,感激不盡。 錯喔 至於怎麼看 要看有沒有分正規化數和非正規化數 你列的那個公式是屬於正規化數的 所以最大正數是1.11...1(小數點後有23個1) ×2^127才對 同樣最小正數 此時看你有沒有分正規化數或非正規化數了 只看正規化數的話 最小正數是1.0 ×2^(-126) (exponent是取1-127) 但一般來說非正規化數會考慮到的 因為IEEE754為了要保持精準度 所以允許正規化數underover可以又有下限 非正規化數公式是(-1)^S × (0.Significant)×2^-126 所以非正規化數最大正數是0.11...1(小數後有23個1) ×2^-126 則最小正數是 0.0....01(小數點後第23位是1其他都0) ×2^-126也能化簡為1 ×2^-149 但要特別注意的是考試時要考IEEE754最大正數和最小正數是多少時候 必須要把正規化數和非正規化數都考慮進去(如果沒規定的話) 所以最大正數就是1.11...1 ×2^127 沒意外最小正數應該是2^-149 至於為什麼exponent不能取0或255的好像是IEEE754規定的@@ 因為這兩個值是特別值它又採用biased達到快速比較指數的關係 所以取0有兩種情況 如果fraction=0的話就是0 但≠0屬於非正規化範圍 取255也有2種情況 如果fraction=0的話會發生overflow趨向無限 而≠0的話為NAN 然而正規化數範圍是exponent取1~254 fraction任意數都可 正規化數定義是小數點左邊只能有非0的數值 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.231.34.217

09/01 09:43, , 1F
非常感謝K大詳細的說明,小弟在書上看過類似的題目
09/01 09:43, 1F

09/01 09:44, , 2F
它的算法跟小弟原本的不一樣,所以小弟才覺得自己算的
09/01 09:44, 2F

09/01 09:44, , 3F
怪怪的,多謝k大的解說
09/01 09:44, 3F
文章代碼(AID): #1I8TFu3k (Grad-ProbAsk)
文章代碼(AID): #1I8TFu3k (Grad-ProbAsk)