frexp
 Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

# frexp

Visual Studio .NET 2003

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

```double frexp(
double x,
int *expptr
);
float frexp(
float x,
int * expptr
);  // C++ only
long double frexp(
long double x,
int * expptr
);  // C++ only
```

#### Parameters

x
Floating-point value.
expptr
Pointer to stored integer exponent.

#### 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.

#### 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.

C++ allows overloading, so you can call overloads of frexp. In a C program, frexp always takes a double and an int and returns a double.

#### Requirements

Function Required header Compatibility
frexp <math.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.

Libraries

All versions of the C run-time libraries.

#### Example

```// crt_frexp.c
/* This program calculates frexp( 16.4, &n )
* then displays y and n.
*/

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

int 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
```

Show:
© 2015 Microsoft