本文主要介绍Java运算符>、>>、>>>三者的含义及区别
1、>:表示大于(是一种比较运算符),比较两者大小,返回值为boolean类型。如 5>6值为false
2、>>:表示带符号右移(是一种位运算符)
如:(1):0110(6)<<1 等于0011(3)
(2):0111(7)>>1 等于:0011(3)
(3):0000 1111(15)>>2 等于:0000 0011(3)
结论:
由此可见,对于右位移来说:如若是右移一位,可以简单的理解为:需要右移的数/2;移动两位:需要右移的数/4;以此类推。。。。(公式:需要右移的数/2的右移位数次方)
位移是不可逆的,意思是:向右位移几位,再左移相同位数,其结果与原值不一定相等。如:0111(7)>>1等于0011(3),再左移0011(3)<<1等于0110(6)
3、>>>:无符号右移,按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。其他结构和>>相似。
4、 其它类似符合说明:
<< 左移
>>= 右移赋值
>>>= 右移赋值,左边空出的位以0填充
<<= 左移赋值