ldexp
부동 소수점 수에 2의 정수 거듭제곱을 곱합니다.
double ldexp( double x, int exp ); float ldexp( float x, int exp ); // C++ only long double ldexp( long double x, int exp ); // C++ only float ldexpf( float x, int exp ); long double ldexpl( long double x, int exp );
매개 변수
x
부동 소수점 값입니다.exp
정수 지수입니다.
반환 값
ldexp 함수는 성공하면 x * 2exp의 값을 반환합니다. 오버플로 및 x의 부호에 따라 ldexp는 +/– HUGE_VAL을 반환하고 errno 값은 ERANGE로 설정됩니다.
errno 및 가능한 오류 반환 값에 대한 자세한 내용은 errno, _doserrno, _sys_errlist 및 _sys_nerr을 참조하세요.
설명
C++에서는 오버로드를 허용하므로 float 또는 long double 형식을 사용하는 ldexp의 오버로드를 호출할 수 있습니다. C 프로그램에서 ldexp는 항상 double 및 int를 사용하고 double을 반환합니다.
요구 사항
루틴 |
C 헤더 |
C++ 헤더 |
---|---|---|
ldexp, ldexpf, ldexpl |
<math.h> |
<cmath> |
호환성에 대한 자세한 내용은 호환성을 참조하십시오.
예제
// 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