📜  如何在Java中计算 Integer 的 log base 2?

📅  最后修改于: 2022-05-13 01:55:08.933000             🧑  作者: Mango

如何在Java中计算 Integer 的 log base 2?

给定一个整数N ,任务是计算它的以 2 为底的对数,即Java中的 log 2 N 。

例子:

Input: N = 2
Output: 1

Input: 1024
Output: 10

方法:

  • Java中的数学类(Java.lang.Math)是一个库,其中包含计算此类值的函数,如 sin()、cos()、log() 等。但 Math 类中的 log() 方法将日志计算为基地 e.因此, Java中没有直接的方法来计算以 2 为底的 log。
  • 但正如我们所知
loga b = loge b / loge a
  • 因此我们可以间接计算 log 2 N 为:
log2 N = loge N / loge 2

下面是上述方法的实现:

Java
// Java code to Calculate log base 2 of an integer
 
import java.io.*;
import java.lang.*;
 
class GFG {
 
    // Function to calculate the
    // log base 2 of an integer
    public static int log2(int N)
    {
 
        // calculate log2 N indirectly
        // using log() method
        int result = (int)(Math.log(N) / Math.log(2));
 
        return result;
    }
 
    // Driver code
    public static void main(String[] args)
    {
 
        int N = 1024;
 
        System.out.println("Log " + N + " to the base 2 = " + log2(N));
    }
}


输出:
Log 1024 to the base 2 = 10