二字節轉包長度

    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
相關文章
相關標籤/搜索