名前空間
変種
操作

exp2, exp2f, exp2l

From cppreference.com
< c‎ | numeric‎ | math
 
 
 
共通の数学関数
関数
基本的な数学関数
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小演算
(C99)
(C99)
指数関数
(C23)
exp2
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
べき乗関数
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角関数と双曲線関数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
最も近い整数浮動小数点数
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮動小数点操作
(C99)(C99)
(C99)(C23)
(C99)
縮小演算
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子および量子指数
Decimal再エンコーディング関数
総順序およびペイロード関数
分類
(C99)
(C99)
(C99)
(C23)
誤差関数とガンマ関数
(C99)
(C99)
(C99)
(C99)
マクロ定数
特殊な浮動小数点値
(C99)(C23)
引数と戻り値
エラーハンドリング
高速演算インジケータ
 
ヘッダー <math.h> で定義
float       exp2f( float n );
(1) (C99以降)
double      exp2( double n );
(2) (C99以降)
long double exp2l( long double n );
(3) (C99以降)
ヘッダー <tgmath.h> で定義
#define exp2( n )
(4) (C99以降)
1-3) 指定されたべき乗nで2を計算します。
4) 型汎用マクロ:nlong double型の場合、exp2lが呼び出されます。それ以外の場合、nが整数型またはdouble型の場合、exp2が呼び出されます。それ以外の場合、exp2fが呼び出されます。

目次

[編集] パラメータ

n - floating-point value

[編集] 戻り値

エラーが発生しない場合、nの基数2の指数(2n
)が返されます。

オーバーフローによる範囲エラーが発生した場合、+HUGE_VAL+HUGE_VALF、または +HUGE_VALL が返されます。

アンダーフローによる範囲エラーが発生した場合、正確な結果 (丸め後) が返される。

[編集] エラー処理

エラーは math_errhandling で指定されたとおりに報告されます。

実装がIEEE浮動小数点算術 (IEC 60559) をサポートしている場合、

  • 引数が±0の場合、1が返されます。
  • 引数が-∞の場合、+0が返されます。
  • 引数が+∞の場合、+∞が返されます。
  • 引数がNaNの場合、NaNが返されます。

[編集]

#include <errno.h>
#include <fenv.h>
#include <float.h>
#include <math.h>
#include <stdio.h>
// #pragma STDC FENV_ACCESS ON
 
int main(void)
{
    printf("exp2(5) = %f\n", exp2(5));
    printf("exp2(0.5) = %f\n", exp2(0.5));
    printf("exp2(-4) = %f\n", exp2(-4));
    // special values
    printf("exp2(-0.9) = %f\n", exp2(-0.9));
    printf("exp2(-Inf) = %f\n", exp2(-INFINITY));
    //error handling
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("exp2(1024) = %f\n", exp2(1024));
    if (errno == ERANGE)
        perror("    errno == ERANGE");
    if (fetestexcept(FE_OVERFLOW))
        puts("    FE_OVERFLOW raised");
}

実行結果の例

exp2(5) = 32.000000
exp2(0.5) = 1.414214
exp2(-4) = 0.062500
exp2(-0.9) = 0.535887
exp2(-Inf) = 0.000000
exp2(1024) = Inf
    errno == ERANGE: Result too large
    FE_OVERFLOW raised

[編集] 参考文献

  • C23標準 (ISO/IEC 9899:2024)
  • 7.12.6.2 The exp2 functions (p: TBD)
  • 7.25 Type-generic math <tgmath.h> (p: TBD)
  • F.10.3.2 The exp2 functions (p: TBD)
  • C17標準 (ISO/IEC 9899:2018)
  • 7.12.6.2 The exp2 functions (p: 177)
  • 7.25 型総称数学関数 <tgmath.h> (p: 272-273)
  • F.10.3.2 The exp2 functions (p: 379)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.12.6.2 The exp2 functions (p: 242-243)
  • 7.25 型総称数学関数 <tgmath.h> (p: 373-375)
  • F.10.3.2 The exp2 functions (p: 521)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.12.6.2 The exp2 functions (p: 223)
  • 7.22 型総称数学関数 <tgmath.h> (p: 335-337)
  • F.9.3.2 The exp2 functions (p: 458)

[編集] 関連項目

(C99)(C99)
指定されたべき乗のeを計算する (ex)
(関数) [編集]
(C99)(C99)(C99)
指定されたべき乗のeから1を引いた値を計算する (ex-1)
(関数) [編集]
(C99)(C99)(C99)
底-2対数を計算する (log2(x))
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)