平时读源码用到的Java位操作符

  • << 右移
2 << 3 输出 16, 相当于 2的3次方再乘以2
  • >> 左移
2 >> 3 输出 0,相当于2的3次方分之一再乘以2
  • >>> 无符号左移
2 >> 3 输出 0,相当于2的3次方分之一再乘以2
  • | 或,对应值有1为1,没有1为0
0 | 0 = 0
0 | 1 = 1
1 | 1 = 1
  • & 与,对应值有0为0,没有0为1
0 & 0 = 0
0 & 1 = 0
1 & 1 = 1
  • ^ 异或,相同为0,不同为1
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 1 = 0
  • ~ 取反
~ 0 = 1
~ 1 = 0

推荐阅读更多精彩内容