JAVA中byte转int遇到的问题

花明

关注

阅读 152

2022-04-13

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.
这时候有两个问题:

  1. 为什么前者总是-120
  2. 为什么后者& 0xff就能得到正确的值

精彩评论(0)

0 0 举报