Javascript 如何将js中的四个十六进制数更改为浮点数?
像这样: 我有一个浮点数Javascript 如何将js中的四个十六进制数更改为浮点数?,javascript,floating-point,Javascript,Floating Point,像这样: 我有一个浮点数25.56,我可以将它翻译成js中的四个十六进制数e17acc41,这种翻译方式在C中称为并集 但是我不知道如何将e17acc41更改为js中的float,并且: 这将返回数组[“e1”、“7a”、“cc”、“41”] 另一种方法也可以: new Float32Array( new Uint8ClampedArray( ["e1", "7a", "cc", "41"].map(function(a){ return parseInt(a, 16);
25.56
,我可以将它翻译成js中的四个十六进制数e17acc41
,这种翻译方式在C中称为并集
但是我不知道如何将e17acc41更改为js中的float,并且: 这将返回数组
[“e1”、“7a”、“cc”、“41”]
另一种方法也可以:
new Float32Array(
new Uint8ClampedArray(
["e1", "7a", "cc", "41"].map(function(a){
return parseInt(a, 16);
})
).buffer
);
注意:这不会返回25.56
的Float32Aray
,而是25.55999465942383
,因为这就是32位浮点数的所有精度。使用Float64Array
,您将获得十六进制数组[“8f”、“c2”、“f5”、“28”、“5c”、“8f”、“39”、“40”]
,然后您将精确地返回数字25.56
这些API仅在Firefox4、Chrome7和InternetExplorer10之后才受支持
构造函数
uint8clampedaray
和Float32Array
可以获取一个长度作为其参数,即数组或ArrayBuffer
当他们得到一个数组时,将从该数组创建一个新的类型化数组
当他们得到一个
ArrayBuffer
时,会根据缓冲区所属的类型数组的内容和类型创建一个新的类型数组。你能告诉我们你到目前为止尝试了什么吗?我想OP的意思是类似新的Uint8ClampedArray(新的Float32Array([25.56]).buffer的东西。
。预期结果(e17acc41
)如下所示:Array.from(newuint8clampedaray(newfloat32array([25.56]).buffer)).map(函数(a){return a.toString(16)}
。另一种方法在JavaScript中也是可能的,但是adeneo建议的复制目标是不正确的。
new Float32Array(
new Uint8ClampedArray(
["e1", "7a", "cc", "41"].map(function(a){
return parseInt(a, 16);
})
).buffer
);