簡體   English   中英

將4個二進制字節轉換為單精度浮點數

[英]Convert 4 binary bytes as single-precision float to Number

我有一個單精度的big-endian浮點數,存儲在4個二進制字節中,我想將其解碼為JS Number 這些字節是使用Ruby的Array#pack方法生成的,例如:

[100.32].pack('g')  # "\x42\xC8\xA3\xD7"

使用npm binary包,我可以將這些字節解碼為32位無符號整數:

let binary = require('binary');  // npm install binary
let buf = new Buffer([0x42,0xc8,0xa3,0xd7]);
let val = binary.parse(buf).word32bu('foo').vars.foo;
console.log(val);
// 1120445399

…但這對我沒有幫助。 如何將1120445399[0x42,0xc8,0xa3,0xd7]轉換為浮點數100.32

看起來它存儲為32位浮點數。 節點已經可以處理這些常見的數字解析/寫入方案。 在這種情況下,您可以只使用buf.readFloatBE(0)轉換這4個字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM