ldexp
浮動小数点数に整数である 2 の累乗を乗算します。
double ldexp( double x, int exp ); float ldexp( float x, int exp ); // C++ only long double ldexp( long double x, int exp ); // C++ only float ldexpf( float x, int exp ); long double ldexpl( long double x, int exp );
パラメーター
x
浮動小数点値。exp
整数の指数。
戻り値
ldexp 関数は、成功した場合、x * 2exp の値を返します。 オーバーフローが発生すると、x の符号に応じて、ldexp は +/- HUGE_VAL を返します。errno の値は ERANGE に設定されます。
errno および可能なエラーの戻り値の詳細については、「errno、_doserrno、_sys_errlist、および _sys_nerr」を参照してください。
解説
C++ ではオーバーロードが可能であるため、float または long double 型を受け取る ldexp のオーバーロードを呼び出すことができます。 C プログラムでは、ldexp は常に double および int を受け取って double を返します。
必要条件
ルーチン |
C ヘッダー |
C++ ヘッダー |
---|---|---|
ldexp, ldexpf, ldexpl |
<math.h> |
<cmath> |
互換性の詳細については、「互換性」を参照してください。
使用例
// crt_ldexp.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 4.0, y;
int p = 3;
y = ldexp( x, p );
printf( "%2.1f times two to the power of %d is %2.1f\n", x, p, y );
}
出力
4.0 times two to the power of 3 is 32.0