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を戻します。 x が 0の場合、 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
*/