byte z = (byte) 0x88;
int zInt = z;
此时如果打印z还有zInt, 会得到-120, 可是0x88明明是136呀
0x88 = 10001000= 128 + 8 = 36
但是如果这样做
byte z = (byte) 0x88;
int zInt = z & 0xff;
这时候就能得到z是-120, zInt就是136.
这时候有两个问题:
- 为什么前者总是-120
- 为什么后者& 0xff就能得到正确的值
微信扫一扫
byte z = (byte) 0x88;
int zInt = z;
此时如果打印z还有zInt, 会得到-120, 可是0x88明明是136呀
0x88 = 10001000= 128 + 8 = 36
但是如果这样做
byte z = (byte) 0x88;
int zInt = z & 0xff;
这时候就能得到z是-120, zInt就是136.
这时候有两个问题:
相关推荐