c99 [ flag... ] file... –lm [ library... ] #include <math.h> double frexp(double num, int *exp);
float frexpf(float num, int *exp);
long double frexpl(long double num, int *exp);
These functions break a floating-point number into a normalized fraction and an integral power of 2. They store the integer exponent in the int object pointed to by exp.
For finite arguments, these functions return the value x, such that x is a double with magnitude in the interval [½, 1) or 0, and num equals x times 2 raised to the power * exp.
If num is NaN, NaN is returned and the value of *exp is unspecified.
If num is ± 0, ± 0 is returned and the value of *exp is 0.
If num is ±Inf, num is returned and the value of *exp is unspecified.
See attributes(5) for descriptions of the following attributes: