자바에서byte수조와 int 형식을 기반으로 변환 (두 가지 방법)

2004 단어 javaintbyte수조
자바에서byte수조와 int 유형의 전환은 네트워크 프로그래밍에서 이 알고리즘은 가장 기본적인 알고리즘이다. 우리는 socket 전송에서 발송, 수신된 데이터는 모두byte수조이지만 int 유형은 4개의byte로 구성되어 있다. 어떻게 성형 int를byte수조로 전환하고 길이가 4인byte수조를 int 유형으로 전환하는지 알고 있다.다음은 두 가지 방식이 있다.

public static byte[] int2byte(int res) {
byte[] targets = new byte[4];

targets[0] = (byte) (res & 0xff);//   
targets[1] = (byte) ((res >> 8) & 0xff);//   
targets[2] = (byte) ((res >> 16) & 0xff);//   
targets[3] = (byte) (res >>> 24);//  , 。 
return targets; 
} 

public static int byte2int(byte[] res) { 
//  byte 24 0x??000000, 8 0x00??0000 

int targets = (res[0] & 0xff) | ((res[1] << 8) & 0xff00) // |   
| ((res[2] << 24) >>> 8) | (res[3] << 24); 
return targets; 
} 
제2종

public static void main(String[] args) { 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    DataOutputStream dos = new DataOutputStream(baos); 
    try { 
      dos.writeByte(4); 
      dos.writeByte(1); 
      dos.writeByte(1); 
      dos.writeShort(217); 
     } catch (IOException e) { 
    e.printStackTrace(); 
  } 
 
  byte[] aa = baos.toByteArray(); 
  ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); 
  DataInputStream dis = new DataInputStream(bais); 
 
  try { 
    System.out.println(dis.readByte()); 
    System.out.println(dis.readByte()); 
    System.out.println(dis.readByte()); 
    System.out.println(dis.readShort()); 
  } catch (IOException e) { 
    e.printStackTrace(); 
  } 
  try { 
    dos.close(); 
    dis.close(); 
  } catch (IOException e) { 
    e.printStackTrace(); 
  } 
} 
이상의 이 자바에서byte수조와 int 유형의 전환(두 가지 방법)을 바탕으로 하는 것은 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분에게 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.

좋은 웹페이지 즐겨찾기