二字节转包长度

    byte[] packet = new byte[2];
   // 包长度转2字节
   packet[0] = (byte)(n >> 8);
   packet[1] = (byte)(n & 0xFF);
   System.out.println(packet[0]);
   System.out.println(packet[1]);
   
   // 2字节转回包长度
   int p0 = packet[0] < 0 ? packet[0] + 256 : packet[0];
   int p1 = packet[1] < 0 ? packet[1] + 256 : packet[1];
   System.out.println(p0 << 8 | p1);

 

还有一种java

   ByteBuffer bb = ByteBuffer.allocate(2);
   bb.putShort((short) (n & 0xFFFF));
   bb.flip();
   int r = ((int) bb.getShort()) & 0xffff;
   System.out.println(r == n);; // true
相关文章
相关标签/搜索