[英]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.