Java:~符号什么意思?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

在这个Java源代码中,我有这样一行:

if ((modifiers & ~KeyEvent.SHIFT_MASK) != 0) ....

符号~代表什么意思?

提问于
用户回答回答于

它是一元〜位运算符(引用)

  • 仅用于整数值
  • 反转位,即0位变为1位,反之亦然
  • 在所有情况下〜x等于(-x)-1

指出:

按位NOT或补码是一个一元操作,对每个位执行逻辑否定,形成给定二进制值的1的补码。0的数字变为1,反之亦然。 例如:

NOT 0111  (decimal 7)
  = 1000  (decimal 8)

在许多编程语言 (包括C系列中的)中,按位NOT运算符是“ ~”(代字号)。

扫码关注云+社区