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算术右移和逻辑右移的结果都一样,建议看看基础