关于返回不大于N的基数2对数的最大int。有人可以解释为什么下面这些代码有效吗?

时间:2017-10-18 18:06:18

标签: java logarithm

我不明白为什么它会这样工作,希望有人可以帮我详细解释一下,非常感谢你

public class Ex14 {
public static int lg(int N) {
    int i, n;
    for (i = 0, n = 1; n <= N; i++) {
        n *= 2;
    }
    return i - 1;
}

public static void main(String[] args) {
    System.out.println(lg(1025));
}

}

1 个答案:

答案 0 :(得分:0)

每次循环,n乘以2。所以n的值在循环运行时变为1,2,4,8,16 ......那产生2的整数幂,对吧?