将int型数据按byte写入到byte[]数组
例如:int i = 6;二进制形式00000000 00000000 00000000 00000110
1byte=8bit
1int=32bit=4byte
如果要将上述整型数6t装入到byte[]数组,分为以下几个步骤:
1。首先把int抓拆成四个byte
1)int转二进制
2)提取第一个byte,将二进制流右移24位,再与11111111进行与操作,得到第一个byte
3)提取第二个bype,将二进制流右移16位,再与11111111进行与操作,注意第一个byte与00000000做与操作除掉了,得到第二个byte
4)提取第三个bype,将二进制流右移8位,再与11111111进行与操作,注意第一个byte与00000000做与操作除掉了,得到第三个byte
5)提取第四个byte,将二进制流直接与11111111做与操作,前三个byte被置0,得到第四个byte
2.赋值给byte[]数组
示例程序
public static final int writeInt(byte buf[], int offset, int value) {
//获取第1个byte赋值给数组 ,“>>>”“零扩展”:无论正负,都在高位插入0
buf[offset++] = (byte)(255 & value >>> 24);
//获取第2个byte赋值给数组
buf[offset++] = (byte)(255 & value >> 16);
//获取第3个byte赋值给数组
buf[offset++] = (byte)(255 & value >> 8);
//获取第4个byte赋值给数组
buf[offset++] = (byte)(255 & value);
//返回4个偏移量
return 4;
}
该小知识点有利于理解计算机的基本数据单位bit和byte的关系,同时也对计算机数据操作有了实践性的认知