2011-10-28 6 views
7

16ビットのバイト配列をunsigned short numberとして読み込む必要があり、Javaではunsigned short型をサポートしていません。
どうすればいいですか?助けてください!!Byte []をunsigned shortとして読み込みJava

+0

16ビットのバイト配列を見て持つことができますか?それは長さ2の配列ですか? –

+0

私はあなたが読んでいない、改宗者を意味すると思いますか?したがって、2バイトを1つの整数値に変換しますか?トリックは、 'short'ではなく' int'として保存する必要があるということです。 – 101100

+0

'char'データ型は基本的に符号なし' short'です。しかし、最も一般的な手法は 'int'を使うことです。 – corsiKa

答えて

9

を与え、この記事を見てみましょうshort(署名)した後、次のようにintに変換します

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

あなたは短期的にunsigned short型のすべての値を表現することはできませんが、int型では、することができます。

4

unsigned shortを使用する必要があるかどうかはわかりませんが、そうでない場合は、常にcharを使用してunsigned shortを保持できます。 としてそれを読む:あなたが読んで、Javaで値を処理しなければならないJava以外のソースからバイナリデータとして利用でき、それを持っていると仮定すると、簡単な概要

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

関連する問題