2013-02-28 53 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。