mithrandirw
java提供两种右移运算符,属于位运算符。位运算符用来对二进制位进行操作。
>>  :算术右移运算符,也称带符号右移。用最高位填充移位后左侧的空位。
>>>:逻辑右移运算符,也称无符号右移。只对位进行操作,用0填充左侧的空位。
 
表达式为:
r = e1 >> e2;
r = e1 >>> e2;
表示把数e1向右移动e2位。
 
运算规则:
>>  :按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。符号位不变。
>>>:按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
 
按上一篇,-1在32位二进制中表示为:
11111111 11111111 11111111 11111111
-1>>1:按位右移,符号位不变,仍旧得到
11111111 11111111 11111111 11111111
因此值仍为-1
 
而-1>>>1的结果为  01111111 11111111 11111111 11111111

分类:

技术点:

相关文章:

  • 2021-06-23
  • 2022-02-09
  • 2022-02-09
  • 2021-12-22
  • 2021-10-31
  • 2021-07-27
  • 2021-12-06
  • 2021-09-18
猜你喜欢
  • 2022-02-09
  • 2022-02-09
  • 2022-02-09
  • 2022-02-09
  • 2021-08-02
  • 2022-02-09
相关资源
相似解决方案