配列内のデータが実際には短いデータであるバイト配列があります。バイトはリトル エンディアンで並べられます。
3、1、-48、0、-15、0、36、1
短い値に変換すると、次のようになります。
259、208、241、292
Javaでバイト値を対応する短い値に変換する簡単な方法はありますか? すべての上位バイトを取得して 8 ビットずつシフトし、下位バイトと OR するループを作成できますが、パフォーマンスが低下します。
配列内のデータが実際には短いデータであるバイト配列があります。バイトはリトル エンディアンで並べられます。
3、1、-48、0、-15、0、36、1
短い値に変換すると、次のようになります。
259、208、241、292
Javaでバイト値を対応する短い値に変換する簡単な方法はありますか? すべての上位バイトを取得して 8 ビットずつシフトし、下位バイトと OR するループを作成できますが、パフォーマンスが低下します。
java.nio.ByteBufferを使用すると、必要なエンディアンを指定できます:order()。
ByteBufferには、データをbyte、char、getShort()、getInt()、long、double..として抽出するメソッドがあります。
使用方法の例を次に示します。
ByteBuffer bb = ByteBuffer.wrap(byteArray);
bb.order( ByteOrder.LITTLE_ENDIAN);
while( bb.hasRemaining()) {
short v = bb.getShort();
/* Do something with v... */
}