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() 関数は整数の指数 nexpptr が指すロケーションに格納します。

戻り値

frexp() 関数は小数部の項 m を戻します。x が 0 の場合、frexp() は小数部指数部の両方に対して 0 を戻します。小数部には引数 x と同じ符号が付きます。frexp() 関数の結果は範囲エラーを持つことができません。

frexp() の使用例

次の例は x の浮動小数点値 16.4 をその小数部 0.5125 と指数部 5 に分けます。小数部を 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
*/

関連情報



[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]