테스트를 위해 작성한 소스 코드
#include<stdio.h>
#include<math.h>
void main()
{
int x;
int a,b;
printf("by LOG10 fuction
");
for(x=0;x<256;x++)
{
a = log10(abs(x))/log10(2);
b = log10(abs(x+1))/log10(2);
if(a!=b)
{
printf("log2(%d) = %d log2(%d) = %d
",x,a,x+1,b);
}
}
printf("
");
printf("by LOG fuction
");
for(x=0;x<256;x++)
{
a = log(abs(x))/log(2);
b = log(abs(x+1))/log(2);
if(a!=b)
{
printf("log2(%d) = %d log2(%d) = %d
",x,a,x+1,b);
}
}
printf("
");
printf("log(8)=%f, log(2)=%f, log2(8)=%f by LOG
log10(8)=%f, log10(2)=%f, log2(8)=%f by LOG10
",
log(8), log(2), log(8)/log(2), log10(8), log10(2), log10(8)/log10(2));
}
printf("%1.16lf", log(8) / log(2));
그럼 2.9999999 ... 을 구경할 수 있을거야. :)