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;

另外,那么热心网友你的第三题是不是计算错了.

danny5207
2019-05-24 · TA获得超过110个赞
知道小有建树答主
回答量:87
采纳率:80%
帮助的人:58万
展开全部
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
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钺森莉SW
2019-05-24 · TA获得超过197个赞
知道小有建树答主
回答量:402
采纳率:58%
帮助的人:69.4万
展开全部
1. -1
2. 3
3. 0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式