作者deepdish (要和數學裝熟..)
看板TransCSI
標題Re: 浮點數計算
時間Wed May 11 13:33:00 2005
PS:以下的解說完全按照 an overview 中譯本內容
※ 引述《sazkj (時報鷹萬歲!!!)》之銘言:
: S C M
: 1 1000 0001 0100 0000 0000 0000 0000 000
: 某書曰:
什麼爛書拿出來鞭\./
: S:負
Sign bit 符號位元
: C:
在 an overview 是寫 exponent field 指數欄
: (1000 0001)=129
: Exp=129-127=2 (真實指數)
1000 0001 代表
正 1,
意謂著將答案的小數點 0100 往右移一個位元
: M:
Mantissa field 假數欄
: 1+M=小數部分
: →(1.01)bin
: 故合併後
: -(1.01)*2^2
: =-(101)bin
: =- 5
結果為 0.100
也就是 1/2 的二進位形式。
因為符號位元為 1,表示的值為負,所以表示 - 1/2
: 想問一:
: C為1000 0001 若以an overview中 超16額表示法(是不是這樣叫我不清楚!?)
不是 超額 xx 表示法(excess notation)是說
二進位的數值比超額表示法的數值多出 xx
所以這裡應該是 超額 128 表示法吧
降的話你應該就知道上面原本你是怎麼算的了
: 0111 1111 表示的是-1
: 1000 0000 表示的是 0
: 1000 0001 表示的是 1
: 所以C的部分,真實指數應該為 1 ?!
沒錯
: 想問二:
: 浮點數正規化,二進制時,假數最高位應該為1
正規化是說
這是為了避免同一個值有多種表示法的可能性。
同時他使得所有非零的值的假數欄都會以 1 開始。
: 為什麼題目會是0 ??
所以題目並不符合正規化格式
: 又為什麼假數還要再加1??
: (之前ASK版有版友教我說是因為溢位的問題,可是我聽了還是不暸解耶)
因為那本爛書不是 an overview
: 想問三:
: 原題真實指數=129-127處
: 我的想法是
: C=Exp+offset
: Exp=C-offset
: =129-128
: =1
: 我這樣算是那邊出錯了?
an overview 用的方法好像比較簡單耶
: 想問四:
: 下面是我自己想像的算法,請各位幫我個忙
: 告訴我那邊錯了@@
: S==>1==>負
: C==>1000 0001===>1
: M==>(0.010)bin
: => -1*(0.101)bin*2^1
: =-(1.01)bin
: =-1-0.25
: =-1.25
看一下上面囉
--
歡迎大家一起加入Intel Philanthropic Peer-to-Peer Program !!!
這項「英特爾慈善『點對點連線』計畫」旨在經由網際網路,把數百萬部個人電腦連結
起來,加速研發治療白血球過多症(血癌)的藥物,從而把新藥上市的需要時間縮短約
一半。對本計畫有興趣者,可以到http://www.grid.org/download/gold/download.htm
網站,下載該程式。
一旦一批資料處理完畢,下次電腦連接上網際網路時,不論經由寬頻或撥接,電腦便會
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.201.17
※ 編輯: deepdish 來自: 140.115.201.17 (05/11 13:33)
※ 編輯: deepdish 來自: 140.115.201.17 (05/11 13:40)
※ 編輯: deepdish 來自: 140.115.201.17 (05/11 13:44)
※ 編輯: deepdish 來自: 140.115.201.17 (05/11 13:46)
※ 編輯: deepdish 來自: 140.115.201.17 (05/11 13:47)
※ 編輯: deepdish 來自: 140.115.201.17 (05/11 13:49)
※ 編輯: deepdish 來自: 140.115.201.17 (05/11 13:51)
※ 編輯: deepdish 來自: 140.115.201.17 (05/11 13:51)
1F:推 sazkj:謝謝版大的詳解!!我自己的假設還計算錯誤 = =" 唉 203.64.94.69 05/11
2F:推 sazkj:我看的那本書是升二技的參考書``錯誤還不少@@ 203.64.94.69 05/11
3F:推 Jasy:學長 你修改太多次了吧 ... 140.115.17.86 05/11
4F:推 FINALDUCK:請問一下如果書上寫的是IEEE754表示法的話呢? 218.184.96.27 05/11
5F:→ sazkj:糟 = =" 我以為IEEE 754和浮點數的計法是一樣的 203.64.94.69 05/11
6F:→ sazkj:所以就沒特別註明@@" 這是錯誤的原因嗎 203.64.94.69 05/11
7F:推 FINALDUCK:小小聲說 沒錯.... 218.184.96.27 05/11
8F:推 deepdish:後來看了一下IEEE 754,書上寫的似乎是對的。 140.115.201.17 05/11