Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:为什么可以';t代表+;128?_Java_Bitset - Fatal编程技术网

Java:为什么可以';t代表+;128?

Java:为什么可以';t代表+;128?,java,bitset,Java,Bitset,这部分代码应该返回以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位10000002字节的第一位为1,即。

这部分代码应该返回以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位10000002字节的第一位为1,即。因此,Java中
字节
类型的范围是。看看这个:

byte b = 127;
byte b2 = (byte)(b + 1);  //-128
Java只支持签名

字节:字节数据类型是一个8位有符号2的补码整数。它的最小值为-128,最大值为127(含)。字节数据类型对于在大型阵列中节省内存非常有用,而实际上节省内存很重要。它们也可以用来代替int,因为它们的限制有助于澄清代码;变量的范围是有限的这一事实可以作为文档的一种形式


作为一个很小的旁白char是一种无符号16位整数类型。它有一种无符号类型。