繁体   English   中英

在javascript中将十六进制转换为32 float

[英]Convert hexadecimal to 32 float in javascript

我在php中有此功能,可以将十六进制转换为php中的32浮点数。 您如何用Javascript做

public static function hexTo32Float($val)
{
    $packed=pack("H*",$val);
    $reversedpac=strrev($packed);
    $unpack=unpack( "f",$reversedpac);

    return array_shift($unpack);
}

使用TypedArray(仅适用于最近的浏览器)怎么样?

var intData = Uint32Array(1);
intData[0] = parseInt("42458c14", 16);
var dataAsFloat = new Float32Array(intData.buffer);
var result = dataAsFloat[0];
// result == 49.38679504394531

编辑(一年后...):看来结果可能取决于您的CPU是大印度还是小印度。 使用时要小心。

完整的BS答案后,请尝试在问题的答案中找到以下内容:
var b = new Buffer(hexNumber, 'hex').readFloatBE(0)
编辑:错误是在这里使用readFloatLE。
为了进一步说明:这里的重点是readFloatXX()期望缓冲区内容为二进制补码值。 我猜readFloatLE是无符号浮点的版本(尽管在文档中找不到)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM