|
! \" I) q- x0 C6 E2 g" i/ y1 Q
其實是原作者一時手快, 原文應該寫成下面這樣比較好懂...( K6 [- L* G H% g% O
( F# C) e2 ?! P0 E' N- ]7 [5 S
X 先寫成 X = a * 2^n, (a = 0.5~1) 的form(形式) , 將乘數 a 給normalized to 0.5~1的範圍.
+ W+ B/ w6 p& D/ N$ N0 x3 i) Y9 K- L5 R3 j
這樣子 X = 2時, a = 1, n = 1
' r+ m9 I3 E6 E3 r" W$ gX = 6 時, x= 0.75, n = 3
4 o! g: c, l. p$ ~: Q. a0 C) u& P& V5 j2 q+ z
原因是 a 介於 0.5~1時, 它的小數表示法會是 0.1xxx (2進位) 對整個表達空間的使用會比較好 (不會浪費太多bit).4 x; Q/ t8 v, g
C q1 M$ M8 Q8 k0 T: |
至於用泰勒展開式, 是工程計算常用的方法, 因為.... 它能有效的控制到精度誤差 (就是收斂, 到第幾項能收斂到多少, 是可以確定的), 又很萬用
. A( Q3 G7 r: ^& z* y& { y% |6 a所以在數值計算上, 泰勒展開式很常見到. 但不見得是最好的解, 有時候看場合會改用查表法, cordic...
$ {+ N+ `8 p1 I+ R
- M9 \; x& K& d; O( p數學真的很重要! (雖然我都忘光了 haha)" F8 l, z' Z/ t( X9 m
, P7 j/ T/ l/ S, A! T) v |
|