1

我完全是java初学者,不擅长英语。所以我不知道如何问我真正想知道的,但我尝试..

在我学习了一些关于使用字节的代码后,我开始练习。但结果不是我所期望的......下面是我的代码!

public static void main(String[] args){
    byte n1 = -2; // 10000010
    byte r1 = (byte) (~n1); // expectation: 125(01111101)
    System.out.println(r1);
}

但结果是“1”..

我了解到字节可以表示 -128~+127,我以为 Eclipse 会显示“125”,但它是“1”所以我想知道为什么..

感谢您关注我的问题。

4

1 回答 1

3

~x等价x ^ -1于 Java ~n1-2 ^ -1 = 1.

正如 Eran 在评论中指出的那样,问题在于您对-2. -211111110,而1000010实际上是 -126。

于 2020-04-12T04:45:12.860 回答