2013-02-28 115 views
0

为什么以下for -loop计算floor(log_2(m)),而不是ceil(log_2(m))(这是我所期望的)?了解for循环的日志迭代

for (int m = <some number>; m > 1; m /= 2) //<some number> is integer >= 0 
    cout << “Here\n”; 

回答

2

因为,例如,当3和2都是整数时,3/2是1,所以循环将终止而不考虑分数。所以你得到log_2(3)= 1。