<br/>
ネットワークプログラミングでは、帯域幅やエンコーディングを節約する必要があるため、通常、文字列に変換するのではなく、long と int をネイティブに処理する必要があります。
public class ByteOrderUtils {
public static byte[] int2byte(int res) {
byte[] target = new byte[4];
targets[3] = (byte) (res & 0xff);ビット
targets[2] = (byte) ((res >> 8) & 0xff);// 2 番目の下位ビット
targets[1] = (byte) ((res >> 16) & 0xff); // 2 番目に上位のビット
targets[0] = (byte) (res >>> 24); // 最上位ビット、符号なし右シフト。
ターゲットを返す;
}
public static int byteArrayToInt(byte[] b){
byte[] a = 新しい byte[4];
int i = a.length - 1,j = b.length - 1; for (; i >= 0 ; i--,j--) {//b の末尾 (つまり、int 値の下位ビット) からデータをコピーします
if(j >= 0)
a[i] = b [j];
else
a[i] = 0;// b.length が 4 未満の場合、上位ビットを 0 で埋める
}
int v0 = (a[0] & 0xff ) << 24;// &0xff は、Java の自動型昇格を回避し、上位の符号ビットを保持するためにバイト値を int に変換します <br/>int v1 = (a[1] & 0xff) << 16 ; <br/>int v2 = (a[2] & 0xff) <<8; <br/>v0 + v1 + v2 + v3; ] long2byte(long res) { <br/>byte[ ] バッファ = 新しいバイト [8]; <br/>for (int i = 0; i < 8; i++) { <br/> int offset = 64 - (i + 1) * 8;バッファ[i] = (バイト) (( res >> オフセット) & 0xff);
}
returnbuffer;
}
public static long byteArrayToLong(byte[] b){
long 値 = 0;
for (int i = 0; i values <}
りー