Я переношу кое-что с C# на Java, и мне нужен класс, который может преобразовывать байты в примитивы, как BitConverter в .NET.
Поскольку я только что опубликовал здесь, я отметил что мой компьютер использует Little-Endian (Intel) и BitConverter работает как положено:
// C# code
byte[] b2 = new byte[] { 0, 1 };
short b2short = BitConverter.ToInt16(b2, 0);
b2short == 256, как и ожидалось.
Что ж, мне понадобился "BitConverter" в JAVA, и я нашел эту часть кода. Однако, когда я пробую это в JAVA, мне кажется, что методы интерпретируют массивы байтов как Big-Endian. JAVA-код:
// JAVA code
byte[] b2 = new byte[] { 0, 1 };
short b2short = MyFoundConverter.BitConverter.toShort(b2, 0);
В данном случае b2short == 1, и мне кажется, что это Big-Endian.
Найден ли код на этой веб-странице, интерпретирующий массив байтов как Big-Endian?
Если да, то есть ли простой способ сделать это с прямым порядком байтов?