我正在研究java。我想知道为什么 java 会产生这个输出。我在这里分享代码。
public class vvn {
public static void main(String[] args)
{
byte [] arr = new byte[4];
arr[0] = (byte)157;
arr[1] = 1;
arr[2] = 0;
arr[3] = 0;
System.out.format("read 0x%x 0x%x 0x%x 0x%x \n",arr[3],arr[2],arr[1],arr[0]);
int v = (arr[0] | (arr[1] << 8) | (arr[2] << 16) | (arr[3] << 24));
System.out.format("read 0x%x\n",v);
}
}
我得到的输出为
read 0x0 0x0 0x1 0x9d
read 0xffffff9d
我预计输出应该是 0x0000019d