请你回答一下与java有关的疑问..
我想将MAX_VALUE
无符号long
(即2(pow)64 -1)存储为字节数组,然后读取byte[]
数组以获取此{{1} }}。
由于所有数据类型都是有符号的,因此想知道如何在MAX_VALUE
数组的每个索引中存储0xFF(每个字节)值,即忽略有符号位。请建议如何做到这一点。
感谢。
答案 0 :(得分:3)
这样的东西?
public class Utils {
static byte[] longToByteArray(long value) {
return ByteBuffer.allocate(8).putLong(value).array();
}
static long byteArrayToLong(byte[] array) {
return ByteBuffer.wrap(array).getLong();
}
public static void main(String[] args) {
long maxValue = Long.parseUnsignedLong("FFFFFFFFFFFFFFFF", 16);
byte[] b = longToByteArray(maxValue);
System.out.println("b = " + Arrays.toString(b));
long value = byteArrayToLong(b);
System.out.println("value = " + value);
System.out.println("hex value = " + Long.toUnsignedString(value, 16));
}
}