[問題] 計算機概論-浮點數

作者: legendsaga74 (柏青哥PA)   2016-08-20 00:16:45
請教各位先進
小弟讀過計概補習班講義後 自以為有讀懂浮點數章節部份
沒想到看了幾題考古題才一直卡卡卡卡 囧囧囧囧
原來講義沒提到 非IEEE754標準的非正規形式浮點數
去wiki跟google補完後 還是有觀念卡住 還請不吝解惑
Question: 指數範圍部份、最大最小數值部份
以IEEE754 單精度浮點數為例 指數部份 8 bits
亦即指數範圍在 0 ~ (2^8 -1) => 0~255
又IEEE754定義保留 0,255 為特殊值 (0給正負0用,255給正負無限大用)
所以剩下 1~254 , 減去偏移值 127 ( 127 = 2^(8-1) -1 )
真正的指數範圍為 -126~127 (題目常出求最大最小正負數用)
所以此例 最大正數= + 2^127 * 1.11111....
最小負數= - 2^127 * 1.11111....
最小正數= + 2^-126 * 1.0
最大負數= - 2^-126 * 1.0
以上有錯還請指正(?)
可是考題做到這兩題時就搞不懂了
根據WIKI - 非正規形式的浮點數的指數偏移值比正規形式的浮點數的指數偏移值大1
https://zh.wikipedia.org/wiki/IEEE_754#cite_note-2
=> 非正規浮點數偏移值 2^(N-1) ; 正規浮點數偏移值 2^(N-1) -1
接著看題目
http://i.imgur.com/vMYjYw3.png
左題指數部份 3 bits ,題目寫明是正規化浮點數
為何解題部份 求大小數範圍時 指數範圍取 -4~3 ? (即 000 -4 , 111 -4)
2 2
所以沒有保留位的設定? 正規形式跟IEEE標準是兩碼子事? (混淆了...)
右題指數部份 5 bits,題目很明顯是非IEEE標準了
5 bits 意即 指數範圍在 0 ~ 31, 減去偏移值 2^(5-1)
後 真正指數範圍在 -16~15,符合下面解答的寫法
可是保留位呢 QQ 思考一直轉不過來 Orz
作者: legendsaga74 (柏青哥PA)   2016-08-20 00:23:00
http://i.imgur.com/TBptLko.png 另請教(三)的答案!
作者: jimmylo (迷路的小孩)   2016-08-20 02:01:00
題題目有說指數以"超四碼"表示為什麼你要忽略它?(三)C最大表示11111所以指數最大表示為31-16=15C最小為00000指數為0-16=-16 剩下用最大最小尾數帶進去推文題目有一小段覺得有錯有數點右邊第一位元恆不為0本文第(三)題解答倒數第二行尾數=01111 故為1 110 1111看起來也有錯誤逆推回去沒辦法得到-5.875
作者: legendsaga74 (柏青哥PA)   2016-08-20 09:11:00
謝謝樓上 超4碼有看到 但是在IEEE標準及非IEEE標準上 不同題目的指數範圍有些混淆...
作者: jimmylo (迷路的小孩)   2016-08-21 01:56:00
你問的題目算是"單精確"的變化可以先看看原始如何計算
作者: ChyiAnPan (恩~喔!)   2016-08-21 09:45:00
作者: legendsaga74 (柏青哥PA)   2016-08-21 19:10:00
謝謝樓上

Links booklink

Contact Us: admin [ a t ] ucptt.com