어제 오늘 내일

[Java Math] log()와 log10() 메소드 – 로그 계산하기 본문

IT/Java

[Java Math] log()와 log10() 메소드 – 로그 계산하기

hi.anna 2025. 12. 12. 07:09

로그 함수는 지수 함수의 역함수로, Math 클래스에서는 자연로그(log)와 상용로그(log10)를 제공합니다.

 

1. log() – 자연로그 (밑 e)

public class MathLogBasic {
    public static void main(String[] args) {
        System.out.println(Math.log(1));   // 0.0 (e^0 = 1)
        System.out.println(Math.log(Math.E)); // 1.0 (e^1 = e)
        System.out.println(Math.log(10));  // ≈ 2.302585092994046
    }
}

Math.log(x)는 밑이 e인 로그, 즉 ln(x) 값을 반환합니다.

 

2. log10() – 상용로그 (밑 10)

public class MathLog10Basic {
    public static void main(String[] args) {
        System.out.println(Math.log10(1));   // 0.0 (10^0 = 1)
        System.out.println(Math.log10(10));  // 1.0 (10^1 = 10)
        System.out.println(Math.log10(100)); // 2.0 (10^2 = 100)
    }
}

Math.log10(x)는 밑이 10인 로그 값을 계산합니다.

 

3. 음수와 0의 경우

public class MathLogInvalid {
    public static void main(String[] args) {
        System.out.println(Math.log(0));   // -Infinity
        System.out.println(Math.log(-5));  // NaN
    }
}
  • log(0)-Infinity
  • log(음수)NaN

 

4. 활용 예제: 밑이 다른 로그 구하기

public class MathLogChangeBase {
    public static void main(String[] args) {
        double value = 8;
        double base = 2;

        double logBase2 = Math.log(value) / Math.log(base);
        System.out.println("log₂8 = " + logBase2); // 3.0
    }
}

밑이 2인 로그(log₂n)처럼 다른 밑의 로그는 밑 변환 공식을 이용할 수 있습니다.

 

5. 활용 예제: 데이터 크기 단위 변환 (로그 활용)

public class MathLogFileSize {
    public static void main(String[] args) {
        long bytes = 8192; // 8KB
        int unit = (int)(Math.log10(bytes) / Math.log10(1024));

        System.out.println("단위 단계 = " + unit); // 1 (KB)
    }
}

파일 크기나 단위를 변환할 때 로그를 활용하면 쉽게 단계(바이트, 킬로바이트, 메가바이트…)를 계산할 수 있습니다.

 

결론

  • Math.log(x) → 자연로그 (밑 e)
  • Math.log10(x) → 상용로그 (밑 10)
  • log(0)-Infinity, 음수는 NaN
  • 밑 변환 공식을 활용하면 다른 밑의 로그도 계산 가능

 
 

반응형
Comments