parsingHEX浮点数
我有整数,例如, 4060
。
如何让HEX浮动( \x34\xC8\x7D\x45
)?
JS没有float
types,所以我不知道如何做这个转换。
谢谢。
上面的答案不再有效。 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);