|
8 |* m! K/ D' Q7 E& o9 U3 L
其實是原作者一時手快, 原文應該寫成下面這樣比較好懂.... ~9 `) |) r# o7 }5 P
- a- U9 S; |8 U. ^X 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍.
: u% S5 r. p! q/ B; ]. n
+ I; {% U5 V0 O, E' J- ?這樣子 X = 2時, a = 1, n = 1
8 e( B" L1 Q+ P# p3 ~5 sX = 6 時, x= 0.75, n = 38 v; n$ f. f0 I+ w; h# @: u5 j
% P) Q# M" ~1 v/ C& c. p原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).7 ?' `4 }6 c% a5 R- j
3 A2 k, b! `! c0 V: W
至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用
9 [0 H3 i4 q0 @! F) f8 y% G* P所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...
" j0 {" }5 O5 e! _3 S) D9 ]+ s! T1 H1 i- o
數學真的很重要! (雖然我都忘光了 haha)
x% Y1 l& g; K4 h9 P+ h
, Y8 L6 ~5 @4 K7 {& T1 z |
|