2017-04-24 29 views
-1

數據表把我2字節用於數據,其被定義爲:解析到在第二補碼形式的16位值

「這兩個字節是2的補碼形式的16位的值,其範圍是從0xF800(-4096)到0x07FF(4095)「

我真的不明白如何解析JavaScript中的這些數據。

+2

該數據表錯誤 - 0xf800 ... 0x07ff實際上是'-2048 ... 2047' – Alnitak

+1

儘管有錯誤,要回答您的問題,我們需要現在如何將這些數據到達您的應用程序,以及它如何存儲。 – Alnitak

+0

是的,這也是我的想法。據我所知,價值並不好。我會給他們打電話。 好吧,我的數據到達了我在uint8Array中解析的原始數據。也許我必須改變這兩個字節的類型來獲得這個值 –

回答

0

目前所有主流瀏覽器都支持DataView類。

鑑於您的Uint8Array包含例如[0xf8, 0x00]

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

,你可以把它當作Int16值,而不是數組:

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

如果陣列中的數據採用的其他方式(小端)爲第二個參數,以供true.getInt16()