|
Q. b6 G' Y. e. N
其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...
8 \1 F+ ~+ T0 ^5 t9 T) J0 _! A0 x% E8 K- i* v0 f; K% q9 A
X 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍.
9 W" `( x# ?, s) E5 W k5 b7 s$ H7 B$ {6 D9 `
這樣子 X = 2時, a = 1, n = 1
& A3 x0 m2 D6 D- A0 M8 YX = 6 時, x= 0.75, n = 3
0 \7 k* w e+ Q
6 y5 X' e: U F1 `, X原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).# j4 k1 w7 ^: t1 X5 ?/ q+ `
, l, _; }1 M# Z& j) q至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用5 w6 o* m' ^/ c/ h9 g$ A3 i9 R# p
所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...5 e* b+ U! W$ U4 L
& f( i; R9 Q0 V* \, ?, U數學真的很重要! (雖然我都忘光了 haha)
( |9 d3 {. z5 f6 O
3 N* ~+ t, s* N* f$ P0 s |
|