c++ - 了解 for 循环的对数迭代

标签 c++

为什么下面的 for 循环计算 floor(log_2(m)),而不是 ceil(log_2(m)) (这是我所期望的)?

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

最佳答案

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

关于c++ - 了解 for 循环的对数迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15125964/

相关文章:

c++ - 可以将套接字从非阻塞更改为阻塞然后再次非阻塞吗?

c++ - 在内核空间调用 NtQuerySystemInformation

c++ - 使用智能指针或引用包装器定义自定义 map

c++ - 如何获取系统调用的参数列表及其类型?

c++ - c++ 中的 stdexcept 与异常 header

C++:关于 switch 和 break 的简短问题

c++ - 移动到未初始化的内存,或者 raw_storage_iterator 是如何工作的

c++ - 面向对象自杀或删除此;

c++ - 这是系统资源吗? (或者我怎么知道我是否需要删除指针)- 在 C++ 中使用 C

c++ - 可以使用十六进制编辑器从 exe 文件中删除代码吗? (c++)