当前位置: 代码迷 >> Eclipse >> 移位运算符,该怎么解决
  详细解决方案

移位运算符,该怎么解决

热度:70   发布时间:2016-04-23 01:39:50.0
移位运算符
int a = 8;
cout<<(a>>>2)<<endl;
请问为什么输出结果是2.(我知道如果第二条语句改为cout<<(a>>2)<<endl;时,输出结果为2)?

------解决方案--------------------
>>是带符号右移,即负数前面补1,整数前面补0
>>>是无符号右移,即不论正负,前面都补0
int a=8的二进制是
0000 0000 0000 0000 0000 0000 0000 1000
不管是>>还是>>>都是前面补0
所以你右移2位,前面补0,就是2
------解决方案--------------------
大侠,C++里面没有">>>",只有java里面才有,是逻辑右移的意思,而">>"是算术右移.
这里8算术右移和逻辑右移的结果都一样,建议看看基础
  相关解决方案