Извлечь 16-битное значение с прямым порядком байтов из байтового массива? - PullRequest
1 голос
/ 24 августа 2011

У меня есть 16-разрядное целое число без знака в байтовом порядке с прямым порядком байтов: 0x01f1, но они находятся в байтовом массиве следующим образом:

    Array
  [0]  0x01
  [1]  0xf1 

Как мне "объединить" массив [0] с массивом [1], чтобы я мог вернуть значение 0x01f1?

Ответы [ 2 ]

4 голосов
/ 24 августа 2011

Вы можете использовать сдвиговые и побитовые операторы , чтобы объединить два элемента массива следующим образом:

byte[] array = new byte[] { 0x01, 0xF1 };

int result = (array[0] << 8) | array[1];
// result == 0x01F1
0 голосов
/ 24 августа 2011

используйте оператор сдвига влево следующим образом:

int myNum = a[0];
myNum = (myNum<<8);
myNum = myNum | a[1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...