У меня есть несколько двоичных операций, которые не работают, как я ожидаю. У меня есть массив байтов с первыми двумя байтами, имеющими следующие значения: 0x5 и 0xE0. Я хочу объединить их в целочисленное значение, которое должно быть 0x5E0. Я пробовал:
int val = (b[i]) << 8 | b[i+1];
но значение выходит 0xFFFFFFEE0, и первый байт 0x5 теряется
Я думал, что это будет легко? Что я делаю неправильно?