我完全是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”,所以我想知道为什么。]]
谢谢您关注我的问题。
我完全是Java初学者,不会说英语。因此,我不知道如何问我真正想知道的内容,但是我尝试了一下。在学习了一些有关使用字节的代码后,我进行了练习。但是结果不是...
~x
等效于Java中的x ^ -1
,因此~n1
为-2 ^ -1 = 1
。
正如Eran在评论中指出的那样,问题是您对-2
的按位表示形式感到误解。 -2
是11111110
,而1000010
实际上是-126。