Break floating-point number into normalized fraction and power of 2
View other versions (3)
Contents  |
|
Interface
#include <math.h>
| double | frexp (double value, int *exp) |
| long | frexpl (long double value, int *exp) |
| float | frexpf (float value, int *exp) |
Description
The
frexp functions break the floating-point number
value into a normalized fraction and an integral power of 2. They store the integer in the int object pointed to by
exp.
The functions return a number
x such that
x has a magnitude in the interval

or 0, and value =

.
Example 1:
#include <stdio.h>
#include <math.h>
int main(void)
{
double x = 1024, fraction;
int e;
fraction = frexp(x, &e);
printf("x = %.2lf = %.2lf * 2^%d\n", x, fraction, e);
return 0;
}
Output:
x = 1024.00 = 0.50 * 2^11
Special Values
frexp (
0,
exp) returns 0, and stores 0 in the object pointed to by
exp.
frexp (
∞,
exp) returns ∞ and stores an unspecified value in the object pointed to by
exp.
frexp (
NaN,
exp) returns a NaN, and stores an unspecified value in the object pointed to by
exp.
See Also
fmod,
modfStandards
The
frexp functions conform to ISO/IEC 9899:1999(E).
Last Modified: 2009-11-01 08:44:43 Page Rendered: 2010-03-09 18:06:57