Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析十六进制浮点_Javascript_Node.js_Ieee 754 - Fatal编程技术网

Javascript 解析十六进制浮点

Javascript 解析十六进制浮点,javascript,node.js,ieee-754,Javascript,Node.js,Ieee 754,我有整数,例如,4060 如何从中获取十六进制浮点(\x34\xC8\x7D\x45) JS没有float类型,所以我不知道如何进行转换 谢谢。如果您想要十六进制字符串,请尝试以下操作: 另一种方式(使用您的输入): 更新:新缓冲区(大小)已被弃用,但很容易被缓冲区取代。alloc(大小): 上述答案不再有效缓冲区已被弃用(请参阅) 新解决方案: function numToFloat32Hex(v,le) { if(isNaN(v)) return false; var bu

我有整数,例如,
4060

如何从中获取十六进制浮点(
\x34\xC8\x7D\x45

JS没有float类型,所以我不知道如何进行转换

谢谢。

如果您想要十六进制字符串,请尝试以下操作:

另一种方式(使用您的输入):

更新
新缓冲区(大小)
已被弃用,但很容易被
缓冲区取代。alloc(大小)


上述答案不再有效<代码>缓冲区已被弃用(请参阅)

新解决方案:

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中测试

我想我遗漏了一些明显的东西,但你有一个整数;没有小数部分(除了隐式的
0
)。你想做什么?任何投票支持“复制”的人,请了解IEEE 754格式…投票重新打开。它也可以用大端或小端读双精度。谢谢,非常有用。
Buffer
尚未被弃用
var b = Buffer.alloc(4);
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"