2017-04-24 11 views
-1

に解析データシートは私のように定義されたデータ、2バイトを入れ0xF800(-4096)から0x07FF(4095)まで "は、第二の補数形式の16ビット値

私はこのデータをJavaScriptで解析する方法を理解していません。

+2

データシートが間違っています - '0xf800 ... 0x07ff'は実際には' -2048 ... 2047'です – Alnitak

+1

エラーにもかかわらず、あなたの質問に答えるために、このデータがアプリケーションにどのように届いているのか、それが現在どのように格納されているかを示します。 – Alnitak

+0

はい、これも私が思ったことです。私が知っているように、価値は良くありませんでした。私はそれらを呼ぶでしょう。 uint8Arrayで解析する生データにデータが到着しています。たぶん私は値を持つためにこれらの2バイトのタイプを変更する必要があります –

答えて

0

すべての現在のメインストリームブラウザは、DataViewクラスをサポートしています。

Uint8Arrayには、あなたの配列内のデータが他の方法で回避(リトルエンディアン)の2番目のパラメータの供給trueがある場合

var view = new DataView(a.buffer) 
var val = view.getInt16(0, false); // false for big-endian 
> -2048 

[0xf8, 0x00]

var a = new Uint8Array([0xf8, 0x00]) 

あなたはInt16代わりに、値の配列として扱うことができます.getInt16()

関連する問題