다음을 통해 공유


ldexp, , ldexpfldexpl

부동 소수점 수에 2의 정수 거듭제곱을 곱합니다.

구문

double ldexp(
   double x,
   int exp
);
float ldexpf(
   float x,
   int exp
);
long double ldexpl(
   long double x,
   int exp
);
#define ldexp(X, INT) // Requires C11 or higher

float ldexp(
   float x,
   int exp
);  // C++ only
long double ldexp(
   long double x,
   int exp
);  // C++ only

매개 변수

x
부동 소수점 값입니다.

exp
정수 지수입니다.

반환 값

함수는 ldexp 성공하면 * 2exp 값을 x 반환합니다. 오버플로 시 및 부 xldexp 호에 따라 +/- HUGE_VALerrno 를 반환합니다. 값은 .로 ERANGE설정됩니다.

오류 반환 값 및 가능한 오류 반환 값에 대한 errno 자세한 내용은 , _doserrno, _sys_errlist_sys_nerr를 참조errno하세요.

설명

C++에서는 오버로드를 허용하므로 ldexp 또는 float 형식을 사용하는 long double의 오버로드를 호출할 수 있습니다. C 프로그램에서는 tgmath.h 매크로를 <사용하여 이 함수 ldexp 를 호출하지 않는 한 항상 a double 및 a int 를 사용하고 반환합니다double.>

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

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

요구 사항

루틴에서 반환된 값 C 헤더 C++ 헤더
ldexp, , ldexpfldexpl <math.h> <cmath>
ldexp 매크로 <tgmath.h>

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

예시

// crt_ldexp.c

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

int main( void )
{
   double x = 4.0, y;
   int p = 3;

   y = ldexp( x, p );
   printf( "%2.1f times two to the power of %d is %2.1f\n", x, p, y );
}

출력

4.0 times two to the power of 3 is 32.0

참고 항목

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