ldexp
将浮点数乘以二的整数幂。
double ldexp( double x, int exp ); float ldexp( float x, int exp ); // C++ only long double ldexp( long double x, int exp ); // C++ only float ldexpf( float x, int exp ); long double ldexpl( long double x, int exp );
参数
x
浮点值。exp
整数指数。
返回值
如果成功,ldexp 函数将返回 x * 2exp 的值。 溢出时,根据 x 的符号,ldexp 将返回 +/– HUGE_VAL;将 errno 值设置为 ERANGE。
有关 errno 和可能的错误返回值的详细信息,请参阅 errno、_doserrno、_sys_errlist 和 _sys_nerr。
备注
由于 C++ 允许重载,因此你可以调用采用 float 或 long double 类型的 ldexp 重载。 在 C 程序中,ldexp 始终采用 double 和 int 并返回 double。
要求
例程 |
C 标头 |
C++ 标头 |
---|---|---|
ldexp, ldexpf, ldexpl |
<math.h> |
<cmath> |
有关兼容性信息,请参见 兼容性。
示例
// crt_ldexp.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 4.0, y;
int p = 3;
y = ldexp( x, p );
printf( "%2.1f times two to the power of %d is %2.1f\n", x, p, y );
}
输出
4.0 times two to the power of 3 is 32.0