|
- B% G2 ]( t! u8 W C7 D
其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...& t) ^6 x* s* Y" h2 t' C+ k
2 a$ y0 @) k d+ W% S+ A5 G
X 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍.
4 u. S1 N) ]5 S3 B' p( z: b" Y9 K) d8 L, n1 ^' Q1 d
這樣子 X = 2時, a = 1, n = 1# r4 f. k: Y! @8 u
X = 6 時, x= 0.75, n = 3
1 @1 Y& e- w- L0 G! @! G: w
: O1 v5 P/ z1 ], H2 q原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).
9 G2 O+ b3 P( y& ^# K( j
: H# m( c! t+ g O y4 L, V至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用
; K6 ]$ `) d P2 y所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...
# c1 Q$ f- O& c0 D/ ^! e! w/ _5 \' F! h! m/ s7 ]8 L& |& i. b F
數學真的很重要! (雖然我都忘光了 haha)& C( G- |# F+ _% C F, V# d/ q
" `9 H k0 Z* c! w
|
|