主题:简单的C语言题目,求详细解答
销魂啊啊
[专家分:0] 发布于 2011-02-20 14:27:00
main()
{
Unsighed char a,b;
a=4|3;
b=4&3;
printf(“%d%d\n”,a,b);
}
执行后输出结果是:
回复列表 (共4个回复)
沙发
eastcowboy [专家分:25370] 发布于 2011-02-20 19:09:00
位运算。
“|”表示“或”运算,“&”表示“与”运算。
4的二进制为100
3的二进制为011
两者进行“或”运算,得到二进制的111,转为十进制就是7。
两者进行“与”运算,得到二进制的000,转为十进制就是0。
板凳
销魂啊啊 [专家分:0] 发布于 2011-02-20 23:13:00
那个与运算是怎样的?
3 楼
eastcowboy [专家分:25370] 发布于 2011-02-20 23:46:00
这些是基础中的基础,楼主应该多看看书啊。
“与”运算,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 楼
hereforc [专家分:210] 发布于 2011-03-10 15:00:00
呵呵
我来回复