C에는 자연로그(Natural Logarithm)를 구하는 log() 함수와, 밑(Base)이 10인 상용 로그를 구하는 log10() 함수만 있기에, 밑이 2인 로그 등을 구하려면 직접 함수를 만들어야 한다. 아래 예제에 logB() 라는 함수가 있는데

logB(숫자, 밑)

이런 형식으로 임의의 실수를 밑으로 지정할 수 있다.

C에서, 자연로그, 상용로그, 밑(Base)이 2인 로그 계산 예제

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

double logB(double x, double base);


int main(void) {


  puts(”  자연 로그 :n”);

  for (double d = 1.0; d <= 10.0; d++)
    printf(”   ln(%2.0f) = %.16fn”, d, log(d));



  puts(“nnn  상용 로그 :n”);

  for (double d = 1.0; d <= 10.0; d++)
    printf(“log10(%2.0f) = %.16fn”, d, log10(d));




  puts(“nnn  밑이 2인 로그 :n”);

  for (double d = 1.0; d <= 10.0; d++)
    printf(” log2(%2.0f) = %.16fn”, d, logB(d, 2.0));


  return 0;
}




double logB(double x, double base) {
  return log(x) / log(base);
}

출처 : http://mwultong.blogspot.com/

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.