为什么 (int & 1 == 0) 是假的?

时间:2021-07-14 02:52:06

标签: c++ bit-manipulation bitwise-operators

这是非常简单的代码,但我不明白为什么会这样。这是我的代码。

#include <iostream>

using namespace std;

int main()
{
    for(int i = 0; i < 32; i++)
    {
    int tmp = i;
    if(tmp & 1 == 0)
        cout << '0' << endl;
    else
        cout << '1' << endl;
    }

    return 0;
}

我原以为输出是“0101...”,但实际输出是“1111...”

但是当我改变条件代码时

if(tmp & 1 == 1)

代码工作正常,正如我所料。 有人能回答我为什么这两个代码产生不同的输出吗?

0 个答案:

没有答案