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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值