C Standard Library

C <math.h> - frexp() Function



The C <math.h> frexp() function is used to break the floating point number x into its binary significand (a floating point with an absolute value in range [0.5, 1.0)) and an integral exponent for 2. Mathematically, it can be expressed as:

x = significand * 2exponent

The exponent is stored in the object pointed by exp, and the function returns the significand. If x is zero, both significand and exponent are zero. If x is negative, the significand returned by the function is negative.

Syntax

double frexp (double x, int* exp);
float frexpf (float x, int* exp);
long double frexpl (long double x, int* exp);

Parameters

x Specify the value to be decomposed.
exp Specify the pointer to an int object to store the exponent.

Return Value

The binary significand of the x.

Example:

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

#include <stdio.h>
#include <math.h>
 
int main (){
  double x, sig;
  int y;
  x = 10;

  sig = frexp(x, &y);

  printf("Number: %lf\n", x);
  printf("Significand: %lf\n", sig);
  printf("Exponent: %i\n", y);

  return 0;
}

The output of the above code will be:

Number: 10.000000
Significand: 0.625000
Exponent: 4

❮ C <math.h> Library