다음을 통해 공유


frexp, , frexpffrexpl

부동 소수점 숫자의 가수 및 지수를 가져옵니다.

구문

double frexp(
   double x,
   int *expptr
);
float frexpf(
   float x,
   int * expptr
);
long double frexpl(
   long double x,
   int * expptr
);
#define frexpl(X, INT_PTR) // Requires C11 or higher
float frexp(
   float x,
   int * expptr
);  // C++ only
long double frexp(
   long double x,
   int * expptr
);  // C++ only

매개 변수

x
부동 소수점 값입니다.

expptr
저장된 정수 지수에 대한 포인터입니다.

반환 값

frexp는 가수를 반환합니다. x가 0이면 이 함수는 가수 및 지수에 대해 둘 다 0을 반환합니다. 이 경우 expptr 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다.NULL 계속해서 실행하도록 허용한 경우 이 함수는 errnoEINVAL 로 설정하고 0을 반환합니다.

설명

이 함수는 frexp 부동 소수점 값(x)을 가수() 및 지수(nm)로 나눕니다. 따라서 절대값 m 은 0.5보다 크거나 같고 1.0보다 작으며 = xm * 2n입니다. 정수 지수 nexpptr가 가리키는 위치에 저장됩니다.

C++에서는 오버로딩을 허용하므로 frexp의 오버로드를 호출할 수 있습니다. C 프로그램에서 tgmath.h 매크로를 사용하여 <이 함수 frexp 를 호출하지 않는 한 항상 a double 및 포인터를 int 가져와서 반환합니다double.>

<tgmath.h>frexp() 매크로를 사용하는 경우 인수 형식에 따라 선택되는 함수 버전이 결정됩니다. 자세한 내용은 형식-제네릭 수학을 참조하세요.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

요구 사항

함수 필수 헤더
frexp, , frexpffrexpl <math.h>
frexp 매크로 <tgmath.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

// 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 );
}
frexp( 16.400000, &n ) = 0.512500, n = 5

참고 항목

수학 및 부동 소수점 지원
ldexp
modf, , modffmodfl