【发布时间】:2015-01-01 19:09:58
【问题描述】:
我用c创建了一个简单的程序:
int y=33, x=45;
y = y && x;
printf("%d\n",y);
y = y & x;
printf("%d\n",y);
输出是 1 和 1。但是如果我用计算器,它显示 x 和 y 是 33。为什么会变成 1?
【问题讨论】:
-
我不知道计算器有逻辑运算符。
-
&&是一个逻辑运算符,计算结果为真 (1) 或假 (0)。所以在y = y && x;之后,y等于 1(因为 x 和 y 都非零)。&是位运算符。这两个数字都将零位设置为 1,因此y = y & x;的结果也是 1。 -
@squeamish ossifrage 谢谢你的解释....虽然我的帖子很奇怪并且得到-2,但我很高兴。谢谢你的帮助......我很感激......!!!
-
当
y = y & x被执行时,你错过了y不是33 的事实。 -
我的回答对您有帮助还是您需要更多帮助?
标签: c binary bitwise-operators