Читать байт [] как короткую Java без знака

#java

#java

Вопрос:

Мне нужно прочитать массив байтов из 16 бит как короткое число без знака, а Java не поддерживает короткий тип без знака.
Итак, как я могу это сделать?? Пожалуйста, помогите!!

Комментарии:

1. Массив байтов из 16 бит? Значит, это массив длиной 2?

2. Я думаю, вы имеете в виду конвертировать, а не читать, верно? Итак, преобразовать два байта в одно целое значение? Хитрость в том, что вам нужно будет сохранить его как an int , а не a short .

3. char Тип данных по сути является unsigned short . Но наиболее распространенным методом является использование int .

4. @glowcoder: короткие строки — это два символа

5. Короткие строки @mkb — это 2 байта, символы — два байта. Прочитайте об этом на download.oracle.com/javase/tutorial/java/nutsandbolts /…

Ответ №1:

Предполагая, что оно доступно в виде двоичных данных из источника, отличного от Java, которые вы должны прочитать и работать со значениями в Java: прочитайте его как (подписанный) short , а затем преобразуйте его int следующим образом:

 int intVal = shortVal >= 0 ? shortVal : 0x10000   shortVal 
 

Вы не можете представить все значения unsigned short в short , но в int вы можете.

Ответ №2:

Я не знаю, нужно ли вам использовать unsigned short , но в случае, если вы этого не сделаете, вы всегда можете использовать char для хранения unsigned short . Взгляните на эту статью, которая дает простой обзор

http://darksleep.com/player/JavaAndUnsignedTypes.html

Ответ №3:

Вы можете взглянуть на

org.apache.commons.io.EndianUtils.readSwappedUnsignedShort