数値をバイト配列に変換してから数値に戻す必要があります。 問題は、バイト配列は、可変サイズのものであるということですので、私は彼のバイト長与えられた数を変換する必要があり、私が思いついた方法は、それらは:(Java)の数値に可変長のバイト配列
ここprivate static byte[] toArray(long value, int bytes) {
byte[] res = new byte[bytes];
final int max = bytes*8;
for(int i = 1; i <= bytes; i++)
res[i - 1] = (byte) (value >> (max - 8 * i));
return res;
}
private static long toLong(byte[] value) {
long res = 0;
for (byte b : value)
res = (res << 8) | (b & 0xff);
return res;
}
私は長いを使用8は使用できる最大バイト数であるためです。 この方法は正の数では完全に機能しますが、ネガティブでデコードを行うことはできません。
編集:私は、値はInteger.MIN_VALUE + 1(-2147483647)と4つのバイトを処理して試してみたこれをテストするために
あなたの問題が今解決されていればダンノー...私の答えがあなたに役立つかどうかを見てください。負の値を返します。 –