Re: 浮點數計算

看板TransCSI作者 (小管)時間19年前 (2005/05/11 22:19), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《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
推文是大寫X,shift+x
203.64.94.69 05/11, 1F

203.64.94.69 05/11, , 2F
歹勢⊙⊙題目有提到IEEE是我把他和浮點數搞混了
203.64.94.69 05/11, 2F
文章代碼(AID): #12WXHW1G (TransCSI)
討論串 (同標題文章)
文章代碼(AID): #12WXHW1G (TransCSI)