6.11.97 ldexp Function

Calculates the result of a double precision floating-point number multiplied by an exponent of 2.

Include

<math.h>

Prototype

double ldexp(double x, int exp);

Arguments

x
floating-point value
exp
integer exponent

Return Value

Returns x * 2^exp.

Example

See the notes at the beginning of this chapter or section for information on using printf() or scanf() (and other functions reading and writing the stdin or stdout streams) in the example code.

#include <math.h>
#include <stdio.h>
#include <errno.h>

int main(void)
{
  double x,y;
  int n;

  x = -0.625;
  n = 2;
  y = ldexp(x, n);
  printf("For a number = %f and an exponent = %d\n", x, n);
  printf("  ldexp(%f, %d) = %f\n\n", x, n, y);

  x = 2.5;
  n = 3;
  y = ldexp(x, n);
  printf("For a number = %f and an exponent = %d\n", x, n);
  printf("  ldexp(%f, %d) = %f\n\n", x, n, y);

  x = 15.0;
  n = 10000;
  y = ldexp(x, n);
  printf("For a number = %f and an exponent = %d\n", x, n);
  printf("  ldexp(%f, %d) = %f\n\n", x, n, y);
}

Example Output

For a number = -0.625000 and an exponent = 2
  ldexp(-0.625000, 2) = -2.500000

For a number = 2.500000 and an exponent = 3
  ldexp(2.500000, 3) = 20.000000

For a number = 15.000000 and an exponent = 10000
  ldexp(15.000000, 10000) = inf