这是非常简单的代码,但我不明白为什么会这样。这是我的代码。
#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)
代码工作正常,正如我所料。 有人能回答我为什么这两个代码产生不同的输出吗?