double frexp(double __x, int *__pexp)
The frexp() function breaks a floating-point number into a normalized fraction and an integral power of 2. It stores the integer in the int
object pointed to by __pexp.
If __x is a normal float point number, the frexp() function returns the value v
, such that v
has a magnitude in the interval [1/2, 1) or zero, and __x equals v
times 2 raised to the power __pexp. If __x is zero, both parts of the result are zero. If __x is not a finite number, the frexp() returns __x as is and stores 0 by __pexp.
This implementation permits a zero pointer as a directive to skip a storing the exponent.