The following code can be used to convert a byte array (containing the bytes of a long) into a long.
public static long byteArrayToLong(byte[] bytes) {
long l = 0;
for (int i=0; i<8; i++) {
l <<= 8;
l ^= (long) bytes[i] & 0xff;
}
return l;
}
This is the reverse of “How to convert a long to a byte array“.
written by objects
\\ tags: array, byte array, conversion, long, representation
The Double class contains two methods that return a representation of a floating point value according to the IEEE 754 floating-point “double format” bit layout.
The first, doubleToLongBits() does not preserve NaN and returns it as 0x7ff8000000000000L.
The second, doubleToRawLongBits() does preserve NaN and returns the representation of the actual NaN value.
The long returned by these methods can then be converted to a byte array.
byte[] array = longToByteArray(Double.doubleToRawLongBits(doubleValue));
written by objects
\\ tags: conversion, double, IEEE 754, representation
The following code can be used to extract the 8 bytes from a long value and return them as a byte array
public static byte[] longToByteArray(long data) {
return new byte[] {
(byte)((data >> 56) & 0xff),
(byte)((data >> 48) & 0xff),
(byte)((data >> 40) & 0xff),
(byte)((data >> 32) & 0xff),
(byte)((data >> 24) & 0xff),
(byte)((data >> 16) & 0xff),
(byte)((data >> 8 ) & 0xff),
(byte)((data >> 0) & 0xff),
};
}
written by objects
\\ tags: array, byte array, conversion, long, representation
Recent Comments