小编ajp*_*jpr的帖子

为什么for循环中的条件乘以并除以2(当我使用>> = for for循环时)

我在C++中练习一些示例我找到了一个程序,代码如下:

unsigned int num;
int c = 0;
cin >> num;
for (; num; num <<= 1)
{
    if (num & 1)
    {
        c++;
    }
}
cout << "c : " << c << endl;
Run Code Online (Sandbox Code Playgroud)

所以我有以下问题:

  1. 在这个for循环条件中,第二个参数是num- 保持它的意义是什么num; 为什么不是任何条件喜欢num<29或可能是其他一些价值?

  2. 而第三个参数是z=num <<= 1,我在这里一直保持z做一些调试要知道在此条件下所获得的价值,但我发现,当操作者,它只是双打>>=和半时,它是<<=.为什么会这样?

  3. 在if条件下我们有if (int y=num & 1).我无法理解它的用途 & 1

我试图通过调试来理解它,但我想知道这三个问题的清楚解释,这就是为什么我想问专家.

c++ for-loop if-statement

-2
推荐指数
1
解决办法
151
查看次数

标签 统计

c++ ×1

for-loop ×1

if-statement ×1