回答
Tilde(~
)对Java中的数值执行按位补码。
参见:Bitwise complement (~
): inverts ones and zeroes in a number
它是Unary ~ Bitwise complement操作者(引用):
- 仅具有整数使用的值
- 反转比特,即一个0比特变为1位,反之亦然 在所有情况下
- 〜x等于(-x)-1-
参见this page on Bitwise operators on wikipedia,其中指出:
按位NOT,或补体,是对每个位进行逻辑 否定,在形成 那些的给定的二进制值 的互补体的 一元运算。为0的数字变为1, ,反之亦然。
例如:
NOT 0111 (decimal 7)
= 1000 (decimal 8)
在许多编程语言 (包括那些在C家族),按位NOT运算符是 “
~
” (波浪)。
从官方文档http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op3.html:
一元位求补运算符 “〜” 反转位模式;它可以应用于任何整型,使得每个“0”为“1”,每个“1”为“0”。例如,一个字节包含8位;将该运算符应用于位模式为“00000000”的值将其模式更改为“11111111”。
如前所述,~
是一元位运算符NOT。
您的示例测试modifiers
是否包含KeyEvent.SHIFT_MASK
中定义的位以外的位。
~KeyEvent.SHIFT_MASK
- >除了那些在KeyEvent.SHIFT_MASK所有位被设置为1(modifiers & ~KeyEvent.SHIFT_MASK)
- >在modifiers
每1位的是 “不属于”KeyEvent.SHIFT_MASK
if ((modifiers & ~KeyEvent.SHIFT_MASK) != 0)
- >如果有除了KeyEvent.SHIFT_MASK
之外,还有至少一个其他位设置为1。
从Java的网站http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
一元位求补运算符 “〜” 反转位模式;它可以应用于任何整数类型,使得每个“0”为“1”,每个“1”为“0”。例如,一个字节包含8位;将该运算符应用 到其位模式为“00000000”的值将其模式变为 其模式为“11111111”。
现在,正如帕斯卡尔马丁先前回答的那样,在任何给定的情况下,vlaue等于 - (x)-1。例如。 〜2 = -3,〜-6 = 5等
此外,在Java所有正整数被存储为它们的二进制表示和负整数被存储在2的正整数的称赞值。
现在,让我们来看看它是如何工作的位水平的情况下〜2 = -3:
最初,2储存在它的二进制表示:
0000 0000 0000 0010
现在〜2会导致值(反比特):
1111 1111 1111 1101
我怎么知道它是-3? 那么,它是-3,因为它是从3
2的补表示导出正如我们所知道2的(X)= 1的(X)+ 1(https://delightlylinux.wordpress.com/2014/10/13/binary-lesson-12-ones-complement-and-twos-complement/)
我们的目标是它求x :
1的(X)= 2的(X) - 1(基于先前的表达)
由于我们的答案是是在2的补,
1的(X)= 1111 1111 1111 1101 - 0000 0000 0000 0001
1的(X)= 1111 1111 1111 1100
(如何减去 - http://sandbox.mc.edu/~bennet/cs110/pm/sub.html)
因此x = 1的值的赞美(因为我们得到的答案代表1的x的赞美)。
x = 0000 0000 0000 0011
因此,我们发现x是3,因此我们以前的结果为〜运算符1111 1111 1111 1101
被-3写为2的3的补码。
- 1. Java中的super()。这是什么意思?
- 2. 这个Java错误是什么意思?
- 3. 这个java代码是什么意思
- 4. 这个Java语法是什么意思?
- 5. 这个java输出是什么意思?
- 6. 这是什么意思? (java,数据库)
- 7. 这个Java语句是什么意思?
- 8. 什么是PPC,这是什么意思?
- 9. 这是什么`_time_independent_equals`是什么意思?
- 10. PHP这是什么意思?
- 11. 这是什么意思? function()!()
- 12. 这是什么意思?
- 13. 这是什么意思? [c#]
- 14. System.BadImageFormatException这是什么意思?
- 15. Ç - 这是什么意思〜
- 16. :这是什么意思?
- 17. IllegalStateException:这是什么意思?
- 18. 这是什么意思?
- 19. 这是什么意思:&** this;
- 20. 这些是什么意思?
- 21. “这”是什么意思?
- 22. 是什么!在这意思?
- 23. CallLog.Calls.NEW?这是什么意思?
- 24. 这是什么意思-c
- 25. 这是什么意思AfterWatermark.withEarlyFirings?
- 26. 这是什么意思?
- 27. 这是什么意思channel.id()?
- 28. 这是什么意思 - C#
- 29. 这是什么意思
- 30. 这是什么意思?