Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at ldexp.
Multiplies a floating-point number by an integral power of two.
Syntax
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
);
Parameters
x
Floating-point value.
exp
Integer exponent.
Return Value
The ldexp
function returns the value of x
* 2exp if successful. On overflow, and depending on the sign of x
, ldexp
returns +/– HUGE_VAL
; the errno
value is set to ERANGE
.
For more information about errno
and possible error return values, see errno, _doserrno, _sys_errlist, and _sys_nerr.
Remarks
Because C++ allows overloading, you can call overloads of ldexp
that take float
or long double
types. In a C program, ldexp
always takes a double
and an int
and returns a double
.
Requirements
Routine | C header | C++ header |
---|---|---|
ldexp , ldexpf , ldexpl |
<math.h> | <cmath> |
For compatibility information, see Compatibility.
Example
// 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 );
}
Output
4.0 times two to the power of 3 is 32.0