©
This document usesPHP Chinese website manualRelease
在头文件 |
|
|
---|---|---|
float exp2f(float n); |
(1) |
(自C99以来) |
double exp2(double n); |
(2) |
(自C99以来) |
long double exp2l(long double n); |
(3) |
(自C99以来) |
在头文件 |
|
|
#define exp2(n) |
(4) |
(自C99以来) |
1-3)计算2给定的倍率n。
4)类型通用宏:如果n的类型是long 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#include #include #include #include #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标准(ISO / IEC 9899:2011):
7.12.6.2 exp2函数(p:242-243)
7.25类型通用数学
F.10.3.2 exp2函数(p:521)
C99标准(ISO / IEC 9899:1999):
7.12.6.2 exp2函数(p:223)
7.22类型通用数学
F.9.3.2 exp2函数(p:458)
Expexpfexpl(C99)(C99) |
计算e给定的倍率(ex)(函数) |
---|---|
expper1expm1fexpm1l(C99)(C99)(C99) |
计算e增加到给定的倍率,减去一(ex-1)(函数) |
log2log2flog21(C99)(C99)(C99) |
计算以2为底的对数(log2(x))(函数) |
| exp2的C ++文档 |