6.11.99 ldexpl Function

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

Include

<math.h>

Prototype

long double ldexpf(long 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)
{
  long double x,y;
  int n;

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

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

  x = 15.0;
  n = 10000;
  y = ldexpl(x, n);
  printf("For a number = %Lf and an exponent = %d\n", x, n);
  printf("  ldexp(%Lf, %d) = %Lf\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