int i = 1023;0000-0000 0000-0000 0000-0011 1111-1111
byte = 1; 0000-0001
--------------------------------------------------------------------
0000-0000 0000-0000 0000-0100 1111-1111
class Test2
{
public static void main(String[] args)
{
int i = 1023;
byte b = 1;
int t = i & 255;//先将i的第一字节中的数据取出,存在临时变量t中
i = i >>> 8;//将i右移8位,i原先的第二个字节变成第一个字节
i = i + b;//把b存入i的第一个字节中(原先是第二个字节)
i = i << 8;//将i左移8位
i = i + t;//将i原先第一个字节中的数据存入i中
System.out.println(i);
}
}
i: 0000-0000 0000-0000 0000-0011 1111-1111
右移八位变成 0000-0000 0000-0000 0000-0000 0000-0011
把b存入i中: 0000-0001
--------------------------------------------------------------------------------------------
0000-0000 0000-0000 0000-0000 0000-0100
把i左移八位 0000-0000 0000-0000 0000-0100 0000-0000
0000-0000 0000-0000 0000-0000 1111-1111把i原先的第一个字节中的数据存入
-----------------------------------------------------------------------------------
0000-0000 0000-0000 0000-0100 1111-1111
运行后的结果:
|