C 庫函數– frexp()
描述
C庫函數double frexp(double x, int *exponent)把浮點數x分解成尾數和指數。 返回值是尾數,並將指數存入exponent中。 所得的值是x = mantissa * 2 ^ exponent 。
聲明
下面是frexp() 函數的聲明。
double frexp(double x, int *exponent)
參數
- x --要被計算的浮點值。
- exponent --指向一個對象的指針,該對象存儲了指數的值。
返回值
該函數返回規格化小數。 如果參數x 不為零,則規格化小數是x 的二次方,且它的絕對值範圍從1/2(包含)到1(不包含)。 如果x 為零,則規格化小數是零,且零存儲在exp 中。
實例
下面的實例演示了frexp() 函數的用法。
#include <stdio.h> #include <math.h> int main () { double x = 1024, fraction; int e; fraction = frexp(x, &e); printf("x = %.2lf = %.2lf * 2^%d\n", x, fraction, e); return(0); }
讓我們編譯並運行上面的程序,這將產生以下結果:
x = 1024.00 = 0.50 * 2^11