|
& r6 p8 J1 V$ n! ~3 E0 z其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...
* G/ }& u6 S% m" x( i, E8 Q1 ~# t }( Z, E& _
X 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍. / j$ I/ S! E" d
4 S3 A+ S" }/ r; \6 h這樣子 X = 2時, a = 1, n = 12 c1 i1 b$ F' M! n5 U
X = 6 時, x= 0.75, n = 3
+ D$ G+ B% ^ {# }2 s* e4 M3 q- ]- Q6 B& [4 O
原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).+ } v* X4 ?. ?+ ^: A# X% D
9 c* [* F i5 K* a8 z" o1 \4 v
至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用
1 _, K9 z z8 K3 {0 a X/ B所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...0 H. u. \4 {2 i- ~# }# L9 E# d4 u+ {
% b3 m; U) k$ S* p
數學真的很重要! (雖然我都忘光了 haha)6 K3 J8 `& Q8 t4 ?0 m$ C _, ` `
. s$ x S- Q9 h/ G: `6 L: Y |
|