我想将字节数组中特定位置的字节值(开始偏移量和我想转换的字节数)转换为 int/long 值?如果可能,反之亦然,在 int --> byte : 4bytes-array 返回的情况下,以及 long --> byte: 8bytes array 返回的情况下?
我使用了以下方法,但它们返回错误值..
public static final byte[] longToByteArray(long value) {
return new byte[] {
(byte)(value >>> 56),
(byte)(value >>> 48),
(byte)(value >>> 40),
(byte)(value >>> 32),
(byte)(value >>> 24),
(byte)(value >>> 16),
(byte)(value >>> 8),
(byte)value};
}
public static final byte[] intToByteArray(int value) {
return new byte[] {
(byte)(value >>> 24),
(byte)(value >>> 16),
(byte)(value >>> 8),
(byte)value};
}
public static long byteToLongWert(byte[] array, int offBegin, int offEnd)
{
long result = 0;
for (int i = offBegin; i<offEnd; i++) {
result <<= 8; //verschieben um 8 bits nach links
result += array[i];
}
return result;
}
public static int byteToIntWert(byte[] array, int offBegin, int offEnd)
{
int result = 0;
for (int i = offBegin; i<offEnd; i++) {
result <<= 8; //verschieben um 8 bits nach links
result += array[i];
}
return result;
}
非常感谢您的帮助!!