|
! c% g4 w) ?$ N3 G其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...# I4 M s3 G4 s; E
) R5 k+ a4 y5 K' vX 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍.
2 S( P6 Q# k% F. P* C$ S8 i$ G2 i6 s% S' V* Y) p1 f. V: @. }$ K
這樣子 X = 2時, a = 1, n = 17 N( h+ a$ \/ q1 D9 l1 E
X = 6 時, x= 0.75, n = 3# y9 a0 J! V6 }4 r2 m8 u$ A
1 [% l6 i( T1 T( d3 T
原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).
1 c2 k5 R V# T% N4 ]9 A1 K1 O; I @) N+ g
至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用
. M# A- j6 \8 R6 `. E所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...; o& c( ` u/ _% K! R" k" w$ a5 J1 s
. M2 V. f& @1 J4 ?7 q+ s# {+ X數學真的很重要! (雖然我都忘光了 haha)
3 ^# n1 s7 I5 Q t" s& X* c R, Z1 m2 T6 a# V; q' b" V. |- @( e2 l# g
|
|