C 標(biāo)準(zhǔn)庫(kù) - <math.h>
C 庫(kù)函數(shù) double frexp(double x, int *exponent) 把浮點(diǎn)數(shù) x 分解成尾數(shù)和指數(shù)。返回值是尾數(shù),并將指數(shù)存入 exponent 中。所得的值是 x = mantissa * 2 ^ exponent。
下面是 frexp() 函數(shù)的聲明。
double frexp(double x, int *exponent)
x -- 要被計(jì)算的浮點(diǎn)值。
exponent -- 指向一個(gè)對(duì)象的指針,該對(duì)象存儲(chǔ)了指數(shù)的值。
該函數(shù)返回規(guī)格化小數(shù)。如果參數(shù) x 不為零,則規(guī)格化小數(shù)是 x 的二次方,且它的絕對(duì)值范圍從 1/2(包含)到 1(不包含)。如果 x 為零,則規(guī)格化小數(shù)是零,且零存儲(chǔ)在 exp 中。
下面的示例演示了 frexp() 函數(shù)的用法。
#include <stdio.h> #include <math.h> int main () { double x = 2048, fraction; int e; fraction = frexp(x, &e); printf("x = %.2lf = %.2lf * 2^%d\n", x, fraction, e); return(0); }
讓我們編譯并運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:
x = 2048.00 = 0.50 * 2^12