在Javascript中将64位十六进制转换为十进制浮点数

黄病毒

所以基本上我有几个以“ 3FF0000000000000”形式出现的十六进制值,我想从这些值中得到浮点值,就像在这里一样。所以在这种特殊情况下,我希望“ 20.000000000000000”为结果-我稍后将其修剪为仅5个小数,但这应该很容易。

我已经尝试了几种解决方案,但不幸的是,我对转换(以及javascript)了解得太少,以至于无法确切知道我可能做错了什么。

最新尝试如下所示:

const hexToFloat64 = (hex) => {
    var int32 = [],
        float64;
    if (hex.length > 4) {
        var high = hex.substr(0, 8),
            low = hex.substr(8, 8);
        int32.push(parseInt(high, 16), parseInt(low, 16));
    }

    var uint32 = new Uint32Array(int32);
    float64 = new Float64Array(uint32.buffer);
    var returnValue = float64[0];
    return returnValue;
};

多谢!

GetSet

这不是您确切问题的答案。这是解码十六进制的解决方案。那就是我在这里所做的一切。我没有上下文可以解决您的问题。

function convHexStringToString(ss) {
// ss length must be even (or 0) when passed to this function
    var s = "";
    var p;
    if (ss.length > 0) {
        if (ss.length % 2 == 0) {
            
            var l = Math.floor(ss.length / 2); // floor must never have to do work
            
            for (var i = 0; i < l; i++) { 
                var i2 = i * 2;
                if (ss.charAt(i2) != "0") {
                    p = ss.charAt(i2) + ss.charAt((i2) + 1);
                }
                else {
                    p = ss.charAt((i2) + 1);
                }
                d = parseInt(p,16);
                s += String.fromCharCode(d);
            }
        }
    }
    return s;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python中将16位十六进制和二进制表示形式转换为十进制浮点数(反之亦然)?

Python如何将浮点数十六进制转换为十进制

在MySQL中将浮点数转换为十进制

用JavaScript将64位十六进制转换为十进制

在 Javascript 中将浮点数转换为 2 个十进制数

在 Swift 中将十六进制转换为十进制

在Java中将64位无符号int(以十六进制字符串形式)转换为十进制

长十六进制值拆分为 2 个字节的十六进制值或 4 个字节的十六进制值,并使用 VB.Net 将其转换为十进制(浮点数)值

PHP将十六进制转换为浮点数

将十六进制转换为浮点数

将浮点数转换为十六进制格式

将浮点数转换为十进制数

Float24(24位浮点数)转换为十六进制?

如何在python中将十六进制值转换为浮点数

如何在Perl中将浮点数转换为十六进制字符串?

如何在 Node.js 中将 4 字节十六进制转换为浮点数

如何在 VB.NET 中将浮点数转换为十六进制?

在GLSL中将浮点数转换为十进制数字

MemSQL - 如何在 MemSQL 中将整数/十进制值转换为浮点数?

如何在JavaScript中将十进制转换为十六进制

如何在JavaScript中将RGB十进制转换为十六进制颜色?

如何使用 VB.Net 将 4 位十六进制(2 字节)转换为十进制(浮点)值

在JAVA中将十六进制转换为十进制并将十进制转换为时间戳

将十进制浮点数转换为二进制并返回

将十进制浮点数转换为二进制

Python将十进制转换为十六进制

PHP将十进制转换为十六进制

ShellScript十六进制转换为十进制

从十进制转换为十六进制