// result:12
public void leftMoveTest()
{
System.out.println(3 << 2);
}
// result:3
public void rightMoveTest()
{
// 00001100右移两位为00000011转为十进制为3
System.out.println(12 >> 2);
}
/**
* int类型转成byte数组 ,result:[16,39,0,0]
*/
public void intToByteArr()
{
int temp = 10000;
byte[] b = new byte[4];
for (int i = 0; i < b.length; i++)
{
// &0xff取低八位(&0xff后int中高的24个位会被清零,就是我们想要的了)
b[i] = (byte) (temp & 0xff);
System.out.println(b[i]);
// 向右移8位
temp = temp >> 8;
}
}
/**
* 字节数组转换为int ,result:10000
*/
public void byteArrToInt()
{
byte[] b = new byte[] { 16, 39, 0, 0 };
int s = 0;
// 最低位
int s0 = b[0] & 0xff;//00000000 00000000 00000000 00010000
int s1 = b[1] & 0xff;//00000000 00000000 00000000 00100111
int s2 = b[2] & 0xff;//00000000 00000000 00000000 00000000
int s3 = b[3] & 0xff;//00000000 00000000 00000000 00000000
s3 <<= 24;//0
s2 <<= 16;//0
s1 <<= 8;//00000000 00000000 00100111 00000000
s = s0 | s1 | s2 | s3;//00100111 00010000=2^4+2^8+2^9+2^10+2^13
System.out.println(s);
System.out.println( Math.pow(2,4)+Math.pow(2,8)+Math.pow(2,9)+Math.pow(2,10)+Math.pow(2,13));
}