java int 바이트와 롱바이트 돌리는 방법

1559 단어 javabyteintlong
네트워크 프로그래밍에서, 대역폭이나 인코딩을 절약하기 위해서, 일반적으로string으로 전환하는 것이 아니라long과 int를 원생 방식으로 처리해야 한다.

public class ByteOrderUtils {

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

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

public static int byteArrayToInt(byte[] b){ 
byte[] a = new byte[4]; 
int i = a.length - 1,j = b.length - 1; 
for (; i >= 0 ; i--,j--) {// b ( int ) copy  
if(j >= 0) 
a[i] = b[j]; 
else 
a[i] = 0;// b.length 4, 0 
} 
int v0 = (a[0] & 0xff) << 24;//&0xff byte int, Java ,  
int v1 = (a[1] & 0xff) << 16; 
int v2 = (a[2] & 0xff) << 8; 
int v3 = (a[3] & 0xff) ; 
return v0 + v1 + v2 + v3; 
}

public static byte[] long2byte(long res) { 
byte[] buffer = new byte[8]; 
for (int i = 0; i < 8; i++) { 
int offset = 64 - (i + 1) * 8; 
buffer[i] = (byte) ((res >> offset) & 0xff); 
}
return buffer;
}

public static long byteArrayToLong(byte[] b){ 
long values = 0; 
for (int i = 0; i < 8; i++) { 
values <<= 8; values|= (b[i] & 0xff); 
} 
return values; 
}

}
지금까지 여러분께 자바 int로 바이트와 롱으로 바이트를 돌리는 방법의 모든 내용입니다. 많은 응원 부탁드립니다~

좋은 웹페이지 즐겨찾기