C 庫函數 - frexp()

C 標準庫 - <math.h> C 標準庫 - <math.h>

描述

C 庫函數 double frexp(double x, int *exponent) 把浮點數 x 分解成尾數和指數。返回值是尾數,并將指數存入 exponent 中。所得的值是 x = mantissa * 2 ^ exponent。

聲明

下面是 frexp() 函數的聲明。

double frexp(double x, int *exponent)

參數

  • x -- 要被計算的浮點值。
  • exponent -- 指向一個對象的指針,該對象存儲了指數的值。

返回值

該函數返回規(guī)格化小數。如果參數 x 不為零,則規(guī)格化小數是 x 的二次方,且它的絕對值范圍從 1/2(包含)到 1(不包含)。如果 x 為零,則規(guī)格化小數是零,且零存儲在 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

C 標準庫 - <math.h> C 標準庫 - <math.h>