Re: 浮點數計算
※ 引述《deepdish (要和數學裝熟..)》之銘言:
: 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==>負
我想該書應該是指IEEE的規格吧!正規化的尾數是1.f,整數部份是隱藏位元,exp指數則갊是excess值加上真實指數 exp=exp(真實指數)+excess(IEEE規格的excess是127),該書似
乎題意未表達完全。
小弟我的算法是…
(指數範圍) exp excess(2^(8-1)) exp(真實)
11111111=255 128 127
10000000=128 128 0
00000000= 0 128 -128
S E M
1 1000 0001 0100 0000 0000 0000 0000 000
負 2^(129-128) .1(正規化)
=- 0.1 bin *2^1=-1(bin)=-1(dec)
有錯請指正;
順便請教一下,推文要按什麼?orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.167.164.182
推
203.64.94.69 05/11, , 1F
203.64.94.69 05/11, 1F
推
203.64.94.69 05/11, , 2F
203.64.94.69 05/11, 2F
討論串 (同標題文章)