2016-06-15 9 views
0

私はBLEモジュールを備えたAndroidアプリケーションを持っています。 BLEデバイスは24バイトのバイト配列を与えています。各バイトには別の意味があります。バイト配列では、10および11項目は電圧であり、その16ビット表現の組み合わせです。Androidで2つの8ビット表現されたバイトを単一の16ビット表現整数値に変換する方法

例:11項目を0、12項目を3としています。そのため、1つの16ビット表現値に変換します。また、これを浮動小数点値として取得する必要があります。なぜなら、UIに浮動小数点値として電圧を表示する必要があるからです。誰もがすでにこの質問をしていることは分かりません。誰かが8ビットから16ビットへの表現の式を知っている場合は、その式を追加してください。

+0

が、それはたとえばmVのための1V未満のスコープ内にある役立つ可能性がこれを試してみてください?表示されない場合は、表示のために「0」を追加することができます。バイト11または12は、16ビット値の最下位ビットですか?すなわち#11 = 0、#12 = 3 =>「03」または「30」? – Fildor

+0

負の数値はどうですか?私も負の数を取得しています。 – Nithinjith

+0

このためにこれを参照する新しい質問をする必要があります。 – Fildor

答えて

2

は、それはあなた

short yourinteger16 = (short)(((bytes[0] & 0xFF) << 8) | (bytes[1] & 0xFF)); 
+0

マインドエンディアン。それは__could__は、他の方法ラウンドである... – Fildor

+0

これは正の数のために正常に動作しています。しかし、負の数の場合、それは間違った価値を作り出しています。どんな解決策ですか? – Nithinjith

関連する問題