> > >> >>表示带符号右移,如果该数为正,则高位补0,若为负数,则高位补1;
>
>
>
>>>
>>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。
x>>n表示x向右移2)
例子:
- 5>>2
表示5向右移2位.
5的二进制表示为:00000000 00000000 00000000 00000101
向右移2位,由于考虑到是正数,左边空出来的位用0补变为00000000 00000000 00000000 0000 0001
结果为1 - -5>>2
-5的二进制为11111111 11111111 11111111 11111011
向右移2位,由于考虑到是负数,左边空出来的位用1补变为11111111 11111111 11111111 11111110
负数还原成10进制:保留符号位取反加1- 取反:10000000 00000000 00000000 00000001
- 加1: 10000000 00000000 00000000 00000010
结果为:-2
- 5>>>2
【同5>>2】 - -5>>>2
左边空出来的位用0补变为00111111 11111111 11111111 11111110
结果就是这个二进制所代表的的值,即8455454206