scalbn
、 scalbnf
、 scalbnl
、 scalbln
、 scalblnf
、 scalblnl
浮動小数点数に FLT_RADIX
の整数の累乗を乗算します。
構文
double scalbn(
double x,
int exp
);
float scalbn(
float x,
int exp
); // C++ only
long double scalbn(
long double x,
int exp
); // C++ only
float scalbnf(
float x,
int exp
);
long double scalbnl(
long double x,
int exp
);
#define scalbn(X, INT) // Requires C11 or higher
double scalbln(
double x,
long exp
);
float scalblnf(
float x,
long exp
);
long double scalblnl(
long double x,
long exp
);
#define scalbln(X, LONG) // Requires C11 or higher
float scalbln(
float x,
long exp
); // C++ only
long double scalbln(
long double x,
long exp
); // C++ only
パラメーター
x
浮動小数点値。
exp
整数の指数。
戻り値
scalbn
関数は、成功した場合 x
* FLT_RADIX
exp の値を返します。 オーバーフロー時 ( x
の符号に応じて) scalbn
は +/- HUGE_VAL
を返します。 errno
値は ERANGE
に設定されます。
errno
と考えられるエラー戻り値の詳細については、errno
、_doserrno
、_sys_errlist
、および_sys_nerr
に関するページを参照してください。
解説
FLT_RADIX
はネイティブ浮動小数点の基数として <float.h> で定義されます。バイナリ システムの場合、値は 2 で、 scalbn
は ldexp
と同等です。
C++ ではオーバーロードが可能であるため、float
型またはlong double
型を受け取って返すscalbn
およびscalbln
オーバーロードを呼び出すことができます。 C プログラムでは、 <tgmath.h> マクロを使用してこの関数を呼び出さない限り、 scalbn
は常に double
と int
を受け取り、 double
を返し、 scalbln
は常に double
と long
を受け取り、 double
を返します。
<tgmath.h>scalbn()
または scalbln
マクロを使用する場合は、引数の型によって、この関数のどのバージョンが選択されるかが決定されます。 詳細については、「ジェネリック型数値演算」を参照してください。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。
要件
機能 | C ヘッダー | C++ ヘッダー |
---|---|---|
scalbn 、 scalbnf 、 scalbnl 、 scalbln 、 scalblnf 、 scalblnl |
<math.h> | <cmath> |
scalbn またはマクロscalbln |
<tgmath.h> |
互換性の詳細については、「 Compatibility」を参照してください。
例
// crt_scalbn.c
// Compile using: cl /W4 crt_scalbn.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 6.4, y;
int p = 3;
y = scalbn( x, p );
printf( "%2.1f times FLT_RADIX to the power of %d is %2.1f\n", x, p, y );
}
出力
6.4 times FLT_RADIX to the power of 3 is 51.2