zbsfcwxd

将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的关系,同时也对计算机数据操作有了实践性的认知

分类:

技术点:

相关文章: