|
* |( f; X+ v5 Q2 |; f" ^其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...( L2 I; p' I8 u% w& ?) y7 w7 Q
+ l+ G7 U6 X3 M; z
X 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍. # ^* ^) a% a- m. \- y5 a) e5 M
' Y/ Z& T2 `3 Q- a1 {% H這樣子 X = 2時, a = 1, n = 1
/ ]2 N, |3 l- G" q' oX = 6 時, x= 0.75, n = 3/ }; E9 e4 ]; u! R7 f- a# v9 _
# D* \; C( q0 Z: V9 J. @2 i原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).' X& l W1 x8 Y; C; Q( K
! y k9 ~' s' O2 u7 ?
至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用
' c5 S5 r* R6 K. U2 L所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...
0 b- f5 x9 g) W/ G+ y# N2 q; E: S9 z4 _( H$ n1 ~
數學真的很重要! (雖然我都忘光了 haha)
; t6 a( C+ D) f3 X; Q7 \
5 S) `2 d1 U8 [/ C% {5 J0 f# g3 J- E |
|