c++ - 为什么 (int & 1 == 0) 是假的?
问题描述
这是非常简单的代码,但我不明白为什么会这样。这是我的代码。
#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)
我期望的代码工作正常。有人能回答我为什么这两个代码会产生不同的输出吗?
解决方案
推荐阅读
- django - 如何在通用详细视图中呈现有错误的表单
- java - 如何在 Java 中将一副 52 张牌分成 4 手,每手 13 张?
- java - 如果两个旧集合至少有一个共同元素,则创建一个新集合?
- ms-access - 将频率(时间相关)转换为日期(到期日)
- highcharts - 需要在单击范围选择器按钮时调用具有最小和最大 X 值的 API
- laravel - Laravel, Vue:Object(…) 不是函数
- laravel - Laravel8x:不要使用工厂创建带有 poll_id 的 FK
- javascript - 按键对对象数组进行分组,其中键是一个数组
- robotframework - 如何在机器人框架中传递确切的字符串作为参数
- android - 在浏览器中工作时,模拟器中的 ERR_NAME_NOT_RESOLVED 错误