无符号右移 >>>

若该数为正数,则高位补0,若为负数,则右移后高位同样补0

有符号右移 >>

若该数为负数,则右移后高位补1.
(即移位之后要补上之前的符号位的值)

例子

  1. public static void main(String[] args) {
  2. int a = 16;
  3. int b = -16;
  4. System.out.println(a >>> 1);
  5. System.out.println(a >> 1);
  6. System.out.println(b >>> 1);
  7. System.out.println(b >> 1);
  8. }

8 8

2147483640

-8