设有以下语句:int a,b,c;其中a的值为5,若执行c=a^b>>2,使c的值为十六进制的3f?

设有以下语句:inta,b,c;其中a的值为5,若执行c=a^b>>2,使c的值为十六进制的3f,则b的十六进制值应该是多少答案给的是e8,也就是11101000我算出来... 设有以下语句:int a,b,c;其中a的值为5,若执行c=a^b>>2,使c的值为十六进制的3f,则b的十六进制值应该是多少
答案给的是e8,也就是1110 1000我算出来b右移两位之后为0011 1010,那么右移之前为什么是11101000,而不能是11101011或11101010或11101001呢?
展开
 我来答
小黑哎啊
科技发烧友

2021-11-14 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:1642
采纳率:74%
帮助的人:350万
展开全部
>>运算符优先级高于^运算符
int a=5,b,c;
a^b>>2==3f
a^(b>>2)==3f
a^3f==b>>2(>>2等价于除以4,<<2等价于乘以4)
//方程两边同时乘以4(<<2)
(a^3f)<<2==b
5:0000,0101
3f:0011,1111(^异或)
_________________________
得:0011,1010(<<左移2位)
___________________________
得:1110,1000
(16进制)e8
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式