<br/>
네트워크 프로그래밍에서는 대역폭이나 인코딩을 절약해야 하기 때문에 일반적으로 문자열로 변환하는 대신 long 및 int를 기본적으로 처리해야 합니다.
public class ByteOrderUtils {
public static byte[] int2byte(int res) {
byte[] target = new byte[4];
targets[3 ] = (바이트) (res & 0xff);// 가장 낮은 비트
targets[2] = (byte) ((res >> 8) & 0xff);// 두 번째로 낮은 비트
targets [1] = (바이트) ((res >> 16) & 0xff); // 두 번째로 높은 비트
targets[0] = (byte) (res >> 24); 비트, 부호 없음 오른쪽으로 이동합니다.
대상 반환;
}
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의 하위 비트) value)
if(j >= 0)
a[i] = b[j]
else
a[i] = 0;//b.length가 4보다 작은 경우 , 상위 비트를 0으로 채웁니다.
}
int v0 = (a[0] & 0xff)
int v1 = (a[1] & 0xff)
int v2; = (a[2] & 0xff)
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++) { <br/>int offset = 64 - (i + 1) * 8 <br/>버퍼[i] = (바이트) ((res > ;> 오프셋) & 0xff)
}
반환 버퍼;
}
public static long byteArrayToLong(byte[] b){
long 값 = 0
values <<= 8; 값|= (b[i] & 0xff)
}
반환 값; 🎜>