frexp

Gets the mantissa and exponent of a floating-point number.

double frexp( double x, int *expptr );

Function Required Header Compatibility
frexp <math.h> ANSI, Win 95, Win NT

For additional compatibility information, see Compatibility in the Introduction.

Libraries

LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version

Return Value

frexp returns the mantissa. If x is 0, the function returns 0 for both the mantissa and the exponent. There is no error return.

Parameters

x

Floating-point value

expptr

Pointer to stored integer exponent

Remarks

The frexp function breaks down the floating-point value (x) into a mantissa (m) and an exponent (n), such that the absolute value of m is greater than or equal to 0.5 and less than 1.0, and x = m*2n. The integer exponent n is stored at the location pointed to by expptr.

Example

/* FREXP.C: This program calculates frexp( 16.4, &n )
 * then displays y and n.
 */

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

void main( void )
{
   double x, y;
   int n;

   x = 16.4;
   y = frexp( x, &n );
   printf( "frexp( %f, &n ) = %f, n = %d\n", x, y, n );
}

Output

frexp( 16.400000, &n ) = 0.512500, n = 5

Floating-Point Support Routines

See Also   ldexp, modf