【问题标题】:NodeJS - Convert hexadecimal to floatNodeJS - 将十六进制转换为浮点数
【发布时间】:2016-06-01 04:58:35
【问题描述】:

这听起来像是一场奇怪的斗争,实际上很容易做到,但我找不到将字符串格式的十六进制转换为浮点数的有效方法。

我的例子是:406ea716

如果我使用以下网站之一进行转换,我会得到 3.728948

http://www.h-schmidt.net/FloatConverter/IEEE754.html http://gregstoll.dyndns.org/~gregstoll/floattohex/

我尝试了在互联网上找到的每段代码,但它不会返回相同的结果。

NodeJS 中是否存在执行相同转换的模块?如果没有,我该怎么办?

感谢您的帮助。

【问题讨论】:

标签: node.js hex


【解决方案1】:

不需要模块:

var hex = '406ea716';
// transform the hexadecimal representation in a proper js hexadecimal representation by prepending `0x` to the string
// parseInt() - because your example was an integer.
var num = parseInt( '0x' + '406ea716');
console.log( num );

【讨论】:

  • 感谢您的回复,但这会返回一个整数 (1080993558),而如果我尝试将此十六进制与我列出的网站进行转换,它显然会返回一个浮点数。
【解决方案2】:

你试过parseInt吗?

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

$ node
> parseInt('406ea716', 16)
1080993558

【讨论】:

  • 感谢您的回复,但这与我列出的 2 个网站返回的结果不同。
【解决方案3】:

我有同样的问题。试试这个。

缓冲区('406ea716','hex').readFloatBE(0)

3.7289481163024902

【讨论】:

    猜你喜欢
    • 2014-03-01
    • 2010-12-08
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多