parsingHEX浮点数

我有整数,例如, 4060

如何让HEX浮动( \x34\xC8\x7D\x45 )?

JS没有floattypes,所以我不知道如何做这个转换。

谢谢。

上面的答案不再有效。 Buffer已被弃用(请参阅https://nodejs.org/api/buffer.html#buffer_new_buffer_size )。

新解决scheme:

 function numToFloat32Hex(v,le) { if(isNaN(v)) return false; var buf = new ArrayBuffer(4); var dv = new DataView(buf); dv.setFloat32(0, v, true); return ("0000000"+dv.getUint32(0,!(le||false)).toString(16)).slice(-8).toUpperCase(); } 

例如:

 numToFloat32Hex(4060,true) // returns "00C07D45" numToFloat32Hex(4060,false) // returns "457DC000" 

在Chrome和Firefox中testing

如果你想要一个hexstring ,试试这个:

 > var b = new Buffer(4); > b.writeFloatLE(4060, 0) > b.toString('hex') '00c07d45' 

另一种方式(使用你的input):

 > Buffer('34C87D45', 'hex').readFloatLE(0) 4060.5126953125 

更新new Buffer(size)已被弃用,但它很容易被replaceBuffer.alloc(size)

 var b = Buffer.alloc(4);