设有以下语句: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呢? 展开
答案给的是e8,也就是1110 1000我算出来b右移两位之后为0011 1010,那么右移之前为什么是11101000,而不能是11101011或11101010或11101001呢? 展开
1个回答
展开全部
>>运算符优先级高于^运算符
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询