如何在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