请说明输出
|
#include<stdio.h>
int main(void)
{
int a=-3,b=5,c;
c=a|b;
printf(\"%d \",c);
c=a&b;
printf(\"%d \",c);
}
输出为-3 5
,请解释如何?
没有找到相关结果
已邀请:
7 个回复
甲车劲
现在让我们看一下按位或:
正好代表-3 现在按位与:
完全是5的二进制表示形式
粱委教
要理解的是,如果
和
两边的值都相同,它们将略有不同。如果值不同(例如,一个操作数在该位置的值为0,另一个操作数的值为1),则其中一个为“ wins”,这取决于您使用的是
还是
。 当您将这些位或或在一起时,将赢得1。但是,5在与-3中的0相同的位置具有0,因此该位通过OR操作不变。结果(
)仍与-3相同。 当您进行按位与运算时,零将获胜。但是,5中的1与-3中的1匹配,因此这些位不变地通过AND操作获得。结果仍然是5。
嗜蒂谷尘旱
的二进制文件--is->
-
->
-
->
== -3。这就是将其存储在内存中的方式。 按位或真值表:
|
=
== -3 按位与真值表:
&
=
== 5 另请参阅-每位计算机科学家应该了解的浮点运算法则。
讼乐
锑寝粒
妒垮
河饶办斜施