Я пытаюсь читать в некоторых байтах из файла на Java, а затем создавать битмаски из некоторых данных, длины и смещения от других.
Я так близок к тому, что моя программа работает, но я продолжаю получать искаженные данные, выходящие с другого конца.
Я на 90% уверен, что моя проблема связана с тем, как Java читает байты.
Есть код Python и C, который я основываю на моем дизайне, но я не знаю, как преобразовать его в Java. Я попытался обернуть байт [] в byteBuffer, но я все еще получаю запутывающие результаты.
Вот что я пытаюсь найти:
bitmask: = copy inputBuffer [inputIndex] как 32-битное целое число в формате little-endian - должно быть четыре байта
В C это делается как:
bitmask= (inputBuffer[inputIndex + 3] << 24) | (inputBuffer[inputIndex + 2] << 16) |
(inputBuffer[inputIndex + 1] << 8) | inputBuffer[inputIndex];
В Python это: bitmask= unpack("<L", inputBuffer[inputIndex:inputIndex + 4])[0]
Пока я не смогу правильно работать, моя программа падает.
Может ли кто-нибудь предложить какую-либо информацию о наилучшем способе реализации этого?
Большое спасибо
Тони
вы можете установить ByteBuffer byteOrder для littleEndian и просто использовать getInt