[問題] IEEE754的Excess問題?

看板Electronics作者 (這首歌是我點的!!)時間10年前 (2015/07/22 16:36), 10年前編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
各位大大您們好 小弟有個問題想請教,一般Excess Notation中 Excess為2^(n-1) 但是在IEEE754的標準中Excess則是(2^(n-1))-1 也就是說在單精度的標準中(32位元) Exponent佔8位元,要換成10進位數字是減掉127(即((2^(8-1)-1))而非減掉128(即2^(8-1)) 為何要多減一個1呢? 是跟隱藏位元有關嗎? 小弟一直想不透 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.223.247 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1437554162.A.002.html ※ 編輯: jk76818 (211.75.223.247), 07/22/2015 16:40:33

07/22 17:04, , 1F
您是不是要查: 二的補數
07/22 17:04, 1F
謝謝這位大大,但是這跟2補數應該沒有太大的關係 我後來直接寄mail去問 有在台大開放式課程開課開計算機概論的于天立老師,以下是他回的內容 ************************************************************** jk76818你好, 謝謝來信。 這個問題其實答案可以很複雜也可以很簡單。 簡單版的答案就是"這只是一個選擇"。bias 用128 一樣可以work。 選擇127其實是有很多原因的,但並沒有任何一個原因使得用128不行。 其中一個原因如下: ieee 754 把數字分成5種。其中inf和nan是當exp為全1時。 也就是用 127 當 bias時,exp 真正的range 是 -127 ~ 127 (128 被犧牲了) 這樣使得exp比較平衡些。 當然exp為全0時,其實也被犧牲了,但是畢竟0的確很接近2^-127。 還有另一個原因是gradual underflow…,但講起來真的很複雜… ieee 754 為了減輕gradual underflow (http://www.cs.rice.edu/~taha/teaching/05F/210/Labs/Lab07/gradualUnderflow.html) 的問題,決定納入denormalized 數字。 denormalized 是 exp 為全0,但mantissa不為全0。 當初設計者決定denormalized數字必需能表示1/MAX_FLOAT,而127可以達成這個目的(如 上述的平衡) 當然,為何一定要有denormalized 數字,或是為何一定要能表示1/MAX_FLOAT,這都只是 一個選擇而已。 總之,選擇127背後有些道理(其實都還滿weak的),但是用128並沒有不行。 于天立 ****************************************************************** BTW 原先寄信給老師,沒有料想他會這麼快回我,甚至認為他應該不會回我 因為我不是他的學生,也不是台大的學生,加上他研究繁忙 但他兩天內就立即回了我信 真的是受寵若驚 果然是在台大學生中評價很好的老師 ※ 編輯: jk76818 (211.75.223.247), 07/24/2015 18:02:29 ※ 編輯: jk76818 (211.75.223.247), 07/24/2015 18:04:16

07/24 23:12, , 2F
推于天立老師回信
07/24 23:12, 2F
文章代碼(AID): #1LhrNo02 (Electronics)