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_RADIXexp の値を返します。 オーバーフロー時 (符号xに応じて) scalbn は +/- HUGE_VALerrno を返し、値は ERANGE.

エラーの戻り値と考えられる値のerrno詳細については、「、、_doserrno、、_sys_errlist_sys_nerrを参照してくださいerrno

解説

FLT_RADIXは float.h で<ネイティブ浮動小数点の基数として定義されます。バイナリ システムでは、値が 2 で、scalbnそれに相当しますldexp。>

C++ ではオーバーロードが可能であるため、受け取って返floatす、またはlong double型を呼び出scalbnscalblnしてオーバーロードできます。 C プログラムでは、tgmath.h マクロを<使用してこの関数を呼び出さない限り、scalbn常に a と an double を受け取り、a と a doubleint返しscalbln、常に a と a longdouble を受け取って a 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

関連項目

数学と浮動小数点のサポート
frexp
ldexp
modf, modff, modfl