Я пытаюсь преобразовать короткое в 2 байта ... и затем из этих 2 байтов пытаюсь получить то же самое короткое значение.Для этого я написал следующий код:
short oldshort = 700;
byte 333= (byte) (oldshort);
byte byte2= (byte) ((oldshort >> 8) & 0xff);
short newshort = (short) ((byte2 << 8) + byte1);
System.out.println(oldshort);
System.out.println(newshort);
Для значения 700 (oldshort) newhosrt равно 444. После некоторого тестирования, похоже, этот код работает только для некоторых значений.Например ... если oldshort = 50, то он будет работать нормально ... но если он равен -200 или больше значений, чем 127 (я думаю), он не работает.Я предполагаю, что есть проблема с подписанными байтами, значением дополнения до двух и т. Д., Но я не могу понять, как ее решить.
Есть идеи ??Любой родной способ сделать это в Java?Заранее спасибо!