C语言习题求解第十题
2019-05-24
展开全部
第一题
首先,将i,j,k赋值为3;
i&j 3&3 位与 同时为1则1,否则为0,那么3和3位与那么就是3,不变;
~i 3 按位取反,0变1,1变0
这个就是按位取反的结果,在二进制中11表示十进制的3,取反后,其余的0将会变成1,负数在内存中是一个非常大的值.
-4|3 位或 同时为0则0,否则为1 看图上,如果将后面那两个零补上,那就是所有位都是1了,有符号的整形数表示-1;
第二题
3异或3 两个值不相同为1,否则为0
那么两个相同的值异或就是0,接下来3再和0异或,所有值与0异或都是其本身的值,所以还是3
第三题
3*3=9
9>>2 右移 9在二进制1001,香油挪两位就是 0010在十进制中表示2,那么2位与3就等于2;
另外,那么热心网友你的第三题是不是计算错了.
展开全部
1, 结果 -1 ~i|i&j; 优先级 ~ > & > |
故等价于 (~i)|(i&j) => (~3)|(3&3)
=> -4|3 => -1
2,结果 3 i^=j^=i; ^=是从右至左结合
故等价于 i^=(j^=i)=> i^=(j=3^3)
=>i^=0 => i=3^0 => i=3 =>表达式结果为3
3,j*k>>2&i 结果 2 遵循先算术,再移位,后位运算
故等价于 ((j*k)>>2)&i => ((3*3)>>2)&3
=>(9>>2)&3 =>>2&3 故结果为 2
故等价于 (~i)|(i&j) => (~3)|(3&3)
=> -4|3 => -1
2,结果 3 i^=j^=i; ^=是从右至左结合
故等价于 i^=(j^=i)=> i^=(j=3^3)
=>i^=0 => i=3^0 => i=3 =>表达式结果为3
3,j*k>>2&i 结果 2 遵循先算术,再移位,后位运算
故等价于 ((j*k)>>2)&i => ((3*3)>>2)&3
=>(9>>2)&3 =>>2&3 故结果为 2
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1. -1
2. 3
3. 0
2. 3
3. 0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询