frexp

浮動小数点数の仮数部および指数部を取得します。

double frexp(
   double x,
   int *expptr 
);
float frexp(
   float x,
   int * expptr
);  // C++ only
long double frexp(
   long double x,
   int * expptr
);  // C++ only

パラメーター

  • x
    浮動小数点値。

  • expptr
    指数部を示す整数の格納場所を指すポインター。

戻り値

frexp は、仮数部を返します。 x が 0 の場合は、仮数部と指数部の両方に 0 を返します。 expptr が NULL の場合は、「パラメーターの検証」に説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、この関数は errno を EINVAL に設定し、0 を返します。

解説

frexp 関数は、浮動小数点値 (x) を仮数部 (m) と指数部 (n) に分割します。m の絶対値が 0.5 以上で 1.0 未満になり、x = m*2n になるようにします。 指数部の整数 n は、expptr が指す場所に格納されます。

C++ ではオーバーロードが可能であるため、frexp のオーバーロードを呼び出すことができます。 C プログラムでは、frexp は常に倍精度浮動小数点数と整数を受け取り、倍精度浮動小数点数を返します。

必要条件

機能

必須ヘッダー

frexp

<math.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

// crt_frexp.c
// This program calculates frexp( 16.4, &n )
// then displays y and n.
 

#include <math.h>
#include <stdio.h>

int main( void )
{
   double x, y;
   int n;

   x = 16.4;
   y = frexp( x, &n );
   printf( "frexp( %f, &n ) = %f, n = %d\n", x, y, n );
}
  

同等の .NET Framework 関数

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

参照

浮動小数点サポート

ldexp

modf、modff