2015-10-26 93 views
-2

我有一個JavaScript應用程序,它接收的電壓值爲Uint8Array。下面是接收數據的2個例子:將字節數組轉換爲float32

[3, 134, 46, 177, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 
[3, 127, 46, 170, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 

我想這Uint8Array轉換爲浮點值,但我不知道這是否是一個float32float64,如果它的簽署與否。我所知道的是,這個值是大約12.

任何人都可以幫助一個JavaScript片段來做轉換嗎?

預先感謝您。

+0

你給出的輸入需要的輸出是什麼? –

+0

對我來說看起來像20個字節,它既不是'float32'也不是'float64'? – arcyqwerty

+0

以前8個字節給出2.843474359893e-312或4.021529366771898e-87(小端與大端),所以我認爲有一些信息丟失。如果您不知道條目的確切含義:什麼機器/傳感器/庫爲您提供這些值? – deamentiaemundi

回答

2

每條線似乎都有兩個電壓。來自設備的電壓通常來自ATOD轉換器,其具有8位和16位信息,並且基於電路進行縮放。

它看起來像一個3(未使用,可能是某種模式標誌),後面跟着兩對字節,每個都是來自ATOD的電壓。我猜想根據1 mv,兩個字節(如177和46)應該解釋爲(177 + 46 * 256)/1000.0。縮放。這產生剛剛超過11.9伏的值。鑑於這兩個樣本的範圍,這將符合您的期望。

+0

謝謝你,使用你的方法轉換工程。 –