Есть у меня задача, в которой из файла я должен читать 4-байта длины записи, а потом, согласно этой длине саму запись. Записаны байты в "серверном" порядке, так как файл генерируется на mainframe. на Pascal (IA32) я получал длину файла следующим образом:
var buf: array [0..3]of byte;
len: integer;
begin
mfread(buf);
len := buf[3] + buf[2] shl 8 + buf[1] shl 16 + buf[0] shl 24;
end;
Правильный результат получается в некоторых случаях, в некоторых случаях получается отрицательный результат. Подскажите порядок следования байт в типе int. Или может у меня еще где ошибка? Зависит ли порядок следования байт в java-машине от аппаратной платформы?