log, logf, log10, log10f
로그를 계산합니다.
double log(
double x
);
float log(
float x
); // C++ only
long double log(
long double x
); // C++ only
float logf(
float x
);
double log10(
double x
);
float log10(
float x
); // C++ only
long double log10(
long double x
); // C++ only
float log10f (
float x
);
매개 변수
- x
발견된 로그의 값입니다.
반환 값
log 함수는 성공적인 경우 x의 자연 로그(밑 e) 값을 반환합니다. log10 함수는 밑이 10인 로그값을 반환합니다. x가 음수인 경우, 이러한 함수는 기본적으로 정의되지 않음을 반환합니다. x가 0인 경우, INF(무한대)를 반환합니다.
입력 |
SEH 예외 |
Matherr 예외 |
---|---|---|
± QNAN,IND |
없음 |
_DOMAIN |
± 0 |
ZERODIVIDE |
_SING |
x < 0 |
잘못된 |
_DOMAIN |
log 및 log10은 스트리밍 SIMD 확장 2 (SSE2)을 사용하여 구현을 했습니다. SSE2 구현을 사용에서 제한과 정보에 대에 대해서는 _set_SSE2_enable 를 참고하세요.
설명
C++는 오버로딩을 허용하기 때문에 오버로드인 log 및 log10을 호출할 수 있습니다. C 프로그램에서, log 및 log10는 항상 double을 사용하고 반환합니다.
요구 사항
루틴 |
필수 헤더 |
---|---|
log, logf, log10, log10f |
<math.h> |
호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.
라이브러리
모든 버전의 C 런타임 라이브러리입니다.
예제
// crt_log.c
/* This program uses log and log10
* to calculate the natural logarithm and
* the base-10 logarithm of 9,000.
*/
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 9000.0;
double y;
y = log( x );
printf( "log( %.2f ) = %f\n", x, y );
y = log10( x );
printf( "log10( %.2f ) = %f\n", x, y );
}
Output
log( 9000.00 ) = 9.104980
log10( 9000.00 ) = 3.954243
수학적 관계를 사용하여 다른 밑에 대한 로그값을 생성합니다. 밑이 b인 a의 로그값 == 자연 로그 (a) / 자연 로그 (b).
// logbase.cpp
#include <math.h>
#include <stdio.h>
double logbase(double a, double base)
{
return log(a) / log(base);
}
int main()
{
double x = 65536;
double result;
result = logbase(x, 2);
printf("Log base 2 of %lf is %lf\n", x, result);
}
Output
Log base 2 of 65536.000000 is 16.000000