私は22バイトのフレームを持っています。フレームは、Bluetooth を介した加速度計からの入力ストリームです。加速度センサーの読み取り値は、2 バイトに分割された 16 ビットの数値です。
バイトを追加するのではなく、バッファ[1] +バッファ[2]でバイトをマージしようとすると、結果が並べて表示されます。1+2 = 12 です。
この 2 バイトを組み合わせて元の数値を取得する方法を教えてください。(ところで、バイトはリトルエンディアンで送信されます)
ありがとう
コードは次のとおりです。
public static short twoBytesToShort(byte b1, byte b2) {
return (short) ((b1 << 8) | (b2 & 0xFF));
}
これは、もう少し理にかなっているかもしれないより良い答えです...
public static short twoBytesToShort(byte b1, byte b2) {
return (short) ((b1 << 8) | b2);
}
(b2 & 0xFF) は、まったく同じバイナリ パターンになります。