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

.NET Framework 等效项

System::Math::Pow

请参见

参考

浮点支持

frexp

modf、modff