这部分代码应该返回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);
Run Code Online (Sandbox Code Playgroud)
因为Java 中只有有符号整数类型.8位10000000 2字节的第一位是1,表示负数.因此byte,Java中的类型范围是<-128; 127>.看一下这个:
byte b = 127;
byte b2 = (byte)(b + 1); //-128
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |