C и Python код для помощи Java

1

Я пытаюсь читать в некоторых байтах из файла на 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]

Пока я не смогу правильно работать, моя программа падает.

Может ли кто-нибудь предложить какую-либо информацию о наилучшем способе реализации этого?

Большое спасибо

Тони

  • 0
    Пожалуйста, опубликуйте код Java, который вы пытаетесь использовать.
  • 0
    Я поместил здесь немного кода mrthaggar.com/partialCode.txt Извиняюсь за то, что он немного грязный, я надеюсь, вы поймете, что я пытаюсь сделать из этого !!
Показать ещё 1 комментарий
Теги:
endianness

1 ответ

1
Лучший ответ

вы можете установить ByteBuffer byteOrder для littleEndian и просто использовать getInt

Ещё вопросы

Сообщество Overcoder
Наверх
Меню