Java中的位运算符

> > >> >>表示带符号右移,如果该数为正,则高位补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
上一篇:掌握主流框架的源码实现,理解框架背后的思想


下一篇:学生云ECS使用体验