字节变量不能在Java中表示125吗?

问题描述 投票:1回答: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”,所以我想知道为什么。]]

谢谢您关注我的问题。

我完全是Java初学者,不会说英语。因此,我不知道如何问我真正想知道的内容,但是我尝试了一下。在学习了一些有关使用字节的代码后,我进行了练习。但是结果不是...

java byte bytecode not-operator
1个回答
3
投票

~x等效于Java中的x ^ -1,因此~n1-2 ^ -1 = 1

正如Eran在评论中指出的那样,问题是您对-2的按位表示形式感到误解。 -211111110,而1000010实际上是-126。

© www.soinside.com 2019 - 2024. All rights reserved.