目前,當二進制文件中包含64位浮點,我做的:閱讀包含JavaScript的32位浮點二進制文件
fs.open('doubles.bin', 'r', (err, fd) => {
if (err) reject(err);
const buf = new Buffer(size);
fs.read(fd, buf, 0, size, start, (err2) => {
if (err2) reject(err2);
const f32 = new Float32Array(buf.buffer);
const data = Array.prototype.slice.call(f32);
resolve({ id, data });
});
});
(二進制是一個數字的簡單列表,他們沒有被分開任何東西)
我想這樣的作品,因爲Float32Array視圖預計讀取標準的JavaScript Number
S,其大小爲64位。
只要二元包含32位的數字,我只能得到垃圾出它(NaN
S和錯誤的號碼)。
我怎麼能讀一個二進制文件,其中包含32位浮點數,JavaScript和它轉換成數組?
「我想這樣的作品,因爲Float32Array視圖預計讀取標準的JavaScript數字,其大小爲64位。」不,TypedArrays不會那樣工作。如果我的答案不起作用,請提供示例數據。它是如何產生的?也許這種排序是錯誤的。 – Prinzhorn
你的答案看起來正確,但我不能得到任何meaningfull出來的文件。這裏是一個示例:https://dl.dropboxusercontent.com/u/8538734/doubles.bin – v2blz
你確定.bin文件是32位浮點數嗎?你期望什麼樣的數字?喜歡哪個範圍?看到我更新的答案。 – Prinzhorn