gpt4 book ai didi

Java:为什么不能代表+128?

转载 作者:搜寻专家 更新时间:2023-11-01 01:45:26 25 4
gpt4 key购买 nike

这部分代码应该返回 LittleEndian 中的表示形式 10000000,然后是 128,但它返回 -128。我知道128在二进制表示中和-128是一样的,但是为什么不能表示128呢?

BitSet bset = new BitSet();
bset.set(7);
byte[] bitarray = bset.toByteArray();
for (byte b: bitarray)
System.out.println(b);

最佳答案

因为 Java 中只有有符号整数类型。 8 位 100000002 字节的第一位是 1 即 signifies negative number .因此Java中byte类型的取值范围是<-128; 127>。检查一下:

byte b = 127;
byte b2 = (byte)(b + 1); //-128

关于Java:为什么不能代表+128?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12184471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com