我试图理解 Java 中的按位 NOT 运算符。
在运行以下代码时,我得到的输出为 -6。
class Test {
public static void main (String[] args) {
int x = 5;
System.out.println(~x);
}
}
在运行这个时,我得到的输出为 4。
class Test {
public static void main (String[] args) {
int x = -5;
System.out.println(~x);
}
}
我在谷歌上搜索过这个并了解到数字在 Java 中存储为 2 的补码,但我真的无法弄清楚我们是如何得出上述结果的。我知道要找到 2 的补码,我需要将数字转换为二进制格式,然后必须做一个 1 的补码,这只是位的倒数,然后将 1 添加到 1 的补码,但在纸上我没有得到显示的那些输出由程序。我不知道我哪里出错了。
你能帮我理解这个概念吗?