Мой код:
Код: Выделить всё
Static long extractLong (DataInputStream dis) throw IOException{
byte[] bytes = new byte[8];
dis.read(bytes);
ByteBuffer byteBuffer = ByteBuffer.wrap(byte);
byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
return byteBuffer.getLong()
}
И я получаю 88377542049792.
Эти числа имеют больше смысла, когда вы видите их в шестнадцатеричном формате.
20577 = 5061
88377542049792 = 506100000000
Если я не меняю порядок (endianness), я получаю 61500000hex в качестве входных данных.
Изменяя порядок, кажется, что я меняю местами только два передних байта.
Я уверен, что совершаю ошибку, это мой первый проект, работающий напрямую с двоичным файлом