frexp() — 浮動小数点値を分離する

形式

#include <math.h>
double frexp(double x, int *expptr);

言語レベル

ANSI

スレッド・セーフ

はい

説明

frexp() 関数は、浮動小数点値 x を、小数部の m と指数の別の項 n に分割します。 x=m*2 n となり、m の絶対値が、0.5 以上 1.0 以下、または 0 となるように実行されます。 frexp() 関数は、 expptr が指す位置に整数指数 n を保管します。

戻り値

frexp() 関数は、仮数語 mを戻します。 x0の場合、 frexp() は仮数と指数の両方に対して 0 を戻します。 仮数は、引数 x と同じ符号を持ちます。 frexp() 関数の結果に範囲エラーを含めることはできません。

この例では、浮動小数点値 x、16.4、およびその仮数 0.5125 を分離します。 y の中の仮数と、nの指数を格納します。
#include <math.h>
#include <stdio.h>
 
int main(void)
{
   double x, m;
   int n;
 
   x = 16.4;
   m = frexp(x, n);
 
   printf("The mantissa is %lf and the exponent is %d\n", m, n);
}
 
/*******************  Output should be similar to:  ***************
 
The mantissa is 0.512500 and the exponent is 5
*/

関連情報