7

私は22バイトのフレームを持っています。フレームは、Bluetooth を介した加速度計からの入力ストリームです。加速度センサーの読み取り値は、2 バイトに分割された 16 ビットの数値です。

バイトを追加するのではなく、バッファ[1] +バッファ[2]でバイトをマージしようとすると、結果が並べて表示されます。1+2 = 12 です。

この 2 バイトを組み合わせて元の数値を取得する方法を教えてください。(ところで、バイトはリトルエンディアンで送信されます)

ありがとう

4

2 に答える 2

25

コードは次のとおりです。

public static short twoBytesToShort(byte b1, byte b2) {
          return (short) ((b1 << 8) | (b2 & 0xFF));
}
于 2010-05-24T10:27:42.650 に答える
-1

これは、もう少し理にかなっているかもしれないより良い答えです...

public static short twoBytesToShort(byte b1, byte b2) {
          return (short) ((b1 << 8) | b2);
}

(b2 & 0xFF) は、まったく同じバイナリ パターンになります。

于 2014-01-22T03:03:14.240 に答える