回 帖 发 新 帖 刷新版面

主题:简单的C语言题目,求详细解答

main()
{
Unsighed char a,b;
a=4|3;
b=4&3;
printf(“%d%d\n”,a,b);
}
执行后输出结果是:

回复列表 (共4个回复)

沙发

位运算。
“|”表示“或”运算,“&”表示“与”运算。

4的二进制为100
3的二进制为011
两者进行“或”运算,得到二进制的111,转为十进制就是7。
两者进行“与”运算,得到二进制的000,转为十进制就是0。

板凳


那个与运算是怎样的?

3 楼

这些是基础中的基础,楼主应该多看看书啊。

“与”运算,0与0结果为0,0与1结果为0,1与0结果为0,1与1结果为1。
“或”运算,0或0结果为0,0或1结果为1,1或0结果为1,1或1结果为1。
总的来说,“与”运算和乘法运算有点类似,“或”运算和加法运算有点类似。(优先级也遵从这种类似,“与”的优先级比“或”要高)

如果两个二进制数:011和100,进行“与”运算。则只要把每一位分别进行“与”运算,把结果综合起来即可。从最左边开始看,第一位:0与0结果为0,第二位:1与0结果为0,第三位:1与0结果为0。综合起来就是000。
“或”运算也是一样的。第一位:0或1结果为1,第二位:1或0结果为1,第三位:1或0结果为1。综合起来就是111。

4 楼

呵呵

我来回复

您尚未登录,请登录后再回复。点此登录或注册