什么“〜”(代字号)运算符在Java中做什么?

时间:2014-12-24 11:30:44

标签: java bit-manipulation tilde

代码操作符在Java中的工作原理及其作用是什么?

但是我在Java中编写了几年的代码,我没有使用任何使用Java的严重按位操作。当开始阅读有关按位运算符时,代字号似乎很有趣,我想分享我的小经验。

1 个答案:

答案 0 :(得分:20)

用Java搜索“〜”(代字号)运算符并没有给出一个明确的解释,初学者可以毫无问题地理解。此外,从Java SE6中删除有关逐位运算符的问题,因为Java SE6是一些人不学习逐位操作的原因。我个人的观点是每个程序员必须清楚地了解和理解逐位操作以及如何在软件开发中使用它们。

简单来说,“〜”(代字号)运算符只是逐位运算。这是什么意思?让我们编写几个代码并尝试一下:

public class Tilde
{
    public static void main(String args[]) {
        int x=3;
        int y=~x;

        System.out.println(x);
        System.out.println(y);    
    }
}

结果将是:

-4

3如何转变为-4?正如我所说,代字号是逐位非运算符。因此,操作以其二进制表示执行。 3的二进制表示是11.我们将x声明为int,并且为内存中的x分配了4个字节(32位)。记忆中的表示为3:

00000000000000000000000000000011

当我们在3上执行波浪号运算符时,二进制表示为3的所有零将为1,所有零将为0:

11111111111111111111111111111100

在JVM的实现中,这相当于-4。如果你尝试在-4上执行波浪线操作,你将得到3。

来源:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html

原帖(在myblog中):http://blog.adil.az/post/55588073707/what-tilde-operator-does-in-java