C library function - frexp()

Advertisements


Description

The C library function double frexp(double x, int *exponent) return value is the mantissa and the integer pointed to by exponent is the exponent. The resultant value is x = mantissa * 2 ^ exponent.

Declaration

Following is the declaration for frexp() function.

double frexp(double x, int *exponent)

Parameters

  • x -- This is the floating point value to be computed

  • exponent -- This is the pointer to an int object where the value of the exponent is to be stored.

Return Value

This function returns the normalized fraction. If the argument x is not zero, the normalized fraction is x times a power of two, and its absolute value is always in the range 1/2 (inclusive) to 1 (exclusive). If x is zero, then the normalized fraction is zero and zero is stored in exp.

Example

The following example shows the usage of frexp() function.

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

int main ()
{
   double x = 1024, fraction;
   int e;
   
   fraction = frexp(x, &e);
   printf("x = %.2lf = %.2lf * 2^%d\n", x, fraction, e);
   
   return(0);
}

Let us compile and run the above program, this will produce the following result:

x = 1024.00 = 0.50 * 2^11


Advertisements
Advertisements