|
1 Z) E. n" \3 b. b& t
其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...
, `) d% j! @- Q. a" j: x% t6 e8 e. g5 j
' L0 j1 x8 x2 E7 l1 NX 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍.
& Y. U- z7 S( ^( L
- p& C2 L: g/ ~ @" `這樣子 X = 2時, a = 1, n = 1+ G9 Q: l0 V( G3 z
X = 6 時, x= 0.75, n = 3
4 M+ Z3 ?7 u1 |! i+ x' }; I8 W: j t( R; j% ?: \9 o5 }3 `8 S. Z8 n
原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).& {4 c1 C, j+ ]0 M
" `0 q9 d! _0 Q+ M1 z
至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用! [" U! U0 Q% i- U/ z; X
所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...# u- p7 ?3 r2 D" ?. {& w
! K& n/ ^( @3 q$ v1 a. b, \
數學真的很重要! (雖然我都忘光了 haha)
" i2 ]8 H2 N' r2 y3 Y; R" i& M7 K" _6 \
|
|