?
このドキュメントでは、 php中國語ネットマニュアル リリース
在頭文件<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)計算2給定的倍率n。
4)類型通用宏:如果n的類型是long double,則調(diào)用exp2l。 否則,如果n具有整數(shù)類型或類型double,則調(diào)用exp2。 否則,調(diào)用exp2f。
n | - | floating point value |
---|
如果沒有錯誤發(fā)生,則n的基2指數(shù)(2n
)被返回。
如果發(fā)生由溢出引起的范圍錯誤,則返回+ HUGE_VAL,+ HUGE_VALF或+ HUGE_VALL。
如果由于下溢而發(fā)生范圍錯誤,則返回正確的結(jié)果(舍入后)。
按照math_errhandling中的指定報告錯誤。
如果實現(xiàn)支持IEEE浮點(diǎn)運(yùn)算(IEC 60559),
如果參數(shù)是±0,則返回1
如果參數(shù)是-∞,則返回+0
如果參數(shù)是+∞,則返回+∞
如果參數(shù)是NaN,則返回NaN
#include <stdio.h>#include <math.h>#include <float.h>#include <errno.h>#include <fenv.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(-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.000000exp2(0.5) = 1.414214exp2(-4) = 0.062500exp2(-9) = 0.535887exp2(-Inf) = 0.000000exp2(1024) = Inf errno == ERANGE: Result too large FE_OVERFLOW raised
C11標(biāo)準(zhǔn)(ISO / IEC 9899:2011):
7.12.6.2 exp2函數(shù)(p:242-243)
7.25類型通用數(shù)學(xué)<tgmath.h>(p:373-375)
F.10.3.2 exp2函數(shù)(p:521)
C99標(biāo)準(zhǔn)(ISO / IEC 9899:1999):
7.12.6.2 exp2函數(shù)(p:223)
7.22類型通用數(shù)學(xué)<tgmath.h>(p:335-337)
F.9.3.2 exp2函數(shù)(p:458)
Expexpfexpl(C99)(C99) | 計算e給定的倍率(ex)(函數(shù)) |
---|---|
expper1expm1fexpm1l(C99)(C99)(C99) | 計算e增加到給定的倍率,減去一(ex-1)(函數(shù)) |
log2log2flog21(C99)(C99)(C99) | 計算以2為底的對數(shù)(log2(x))(函數(shù)) |
| exp2 的C ++文檔|