|
5 c% n6 s5 K1 K0 k, J1 P" f+ @! ` {其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...
# d( Y, [5 |- f* e: U- S' C* V8 |+ w% O8 Z# u) \, S9 A" }
X 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍. 3 v1 L' {* q, Z! E% G% u$ B: z
2 I! d R- e _6 b! q: G
這樣子 X = 2時, a = 1, n = 1
7 n6 R% h! \( b* r5 L; m1 rX = 6 時, x= 0.75, n = 3( d. N3 b9 B7 f' Z
, F2 s6 t) B! i2 F- b- b: c- H
原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).
0 l/ ~2 I2 B9 z! X6 L! C2 Q6 a* N1 S7 r) c3 \4 P
至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用; m5 {% L& c0 V c+ y5 c0 Y
所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic..." l7 X$ y% e! H0 m
& V, o$ ~4 Z9 n9 [數學真的很重要! (雖然我都忘光了 haha)
/ ^5 ?$ A( j9 `% g9 w0 O* k& x8 W9 N! f
|
|