ldexp , ldexpf 或 ldexpl 子例程
用途
装入浮点数的指数。
语法
描述
ldexpf, ldexpl, 和 ldexp 子例程计算数量 x * 2exp。
希望检查错误情况的应用程序应将 errno 全局变量设置为零,并在调用这些函数之前调用 feclearexcept(FE_ALL_EXCEPT)。 返回时,如果 errno 为非零或 fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) 为非零,那么发生了错误。
参数
| 项 | 描述 |
|---|---|
| X | 指定要计算的值。 |
| EXP | 指定 2 的指数。 |
返回值
成功完成后, ldexpf, ldexpl和 ldexp 子例程将返回 x 乘以 2 ,再乘以幂 exp。
如果 ldexpf, ldexpl或 ldexp 子例程将导致溢出,那么会发生范围错误, ldexpf, ldexpl, 和 ldexp 子例程分别返回 ±HUGE_VALF, ±HUGE_VALL和 ±HUGE_VAL (根据 x的符号)。
如果正确的值将导致下溢,并且不可表示,那么可能会发生范围错误,并返回 0.0 。
如果x为NaN,返回NaN。
如果 x 是 ± 0 或 Inf ,那么将返回 x 。
如果 exp 为 0 ,那么将返回 x 。
如果正确的值将导致下流,并且可表示,那么可能会发生范围错误并返回正确的值。
错误代码
如果 ldexp 或 ldexpl 子例程溢出的结果,那么将返回 +/- HUGE_VAL , 并且全局变量 errno 设置为 ERANGE。
如果 ldexp 或 ldexpl 子例程下流的结果,那么将返回 0 ,并将 errno 全局变量设置为 ERANGE 值。