x ^ y = exp(ln(x ^ y)) = exp(y * ln(x))
若精度很要求,ln(x) 需要改成 ln(2^n * x/(2^n)) = n * ln(2) + ln(x/(2^n))
找 2^n 和 x/(2^n) 的部分需要了解浮點(diǎn)數(shù)是如何表示的,其功能和 C 語(yǔ)言的標(biāo)準(zhǔn)函數(shù) frexp 一樣。
最后再透過(guò)擬合方式把 ln 和 exp 的數(shù)值找出來(lái)即得到解答。
擬合所需要的各項(xiàng)係數(shù)可以上網(wǎng)從 IBM 的數(shù)學(xué)函式庫(kù)中得到。
在 3G 上使用過(guò)上述方法,最后結(jié)果的精度和使用數(shù)學(xué)函數(shù)算出來(lái)的一模一樣。