Javascript 从十六进制数据帧中提取数字parseInt()ParseFloat()

Javascript 从十六进制数据帧中提取数字parseInt()ParseFloat(),javascript,json,Javascript,Json,我试图解析来自一些传感器的数据,我收到的数据是一个十六进制数字f.e.: '450934644ad7a38441'我想提取温度值的最后8个字符,并将其转换为可读数字。 我尝试了这个网站: 在这里,当您输入d7a38441时,它会被处理,并且想要的号码在浮点-小端(DCBA)系统下。 此外,它所做的转换是在UINT32大端(ABCD)系统下进行的 我如何将这个数字转换成浮点数?我试着在这里读一些其他问题,但找不到解决办法。 parseFloat()给了我NaN 请给我点光线 var数据='450

我试图解析来自一些传感器的数据,我收到的数据是一个十六进制数字f.e.: '450934644ad7a38441'我想提取温度值的最后8个字符,并将其转换为可读数字。 我尝试了这个网站:

在这里,当您输入d7a38441时,它会被处理,并且想要的号码在浮点-小端(DCBA)系统下。 此外,它所做的转换是在UINT32大端(ABCD)系统下进行的

我如何将这个数字转换成浮点数?我试着在这里读一些其他问题,但找不到解决办法。 parseFloat()给了我NaN

请给我点光线

var数据='450934644ad7a38441';
主功能(数据){
var结果=[
{      
“键”:“温度”,
“值”:parseInt('0x'+数据子字符串(10))
}
]
返回结果;
}
控制台日志(主(数据));
//预期输出:数组[Object{key:“temperature”,value:16.58}]
我想您需要什么。函数
yourStringToFloat
接收的字符串是示例中主函数接收的
数据
变量。当然,您可以根据需要确定精度

函数flipHexString(hexValue,hexDigits){
var h=hexValue.substr(0,2);
对于(变量i=0;i>31?-1:1;
变量e=(十六进制>>23)&0xFF;
返回s*(十六进制和0x7fffff | 0x800000)*1.0/数学功率(2,23)*数学功率(2,(e-127))
}
函数yourStringToFloat(str){
返回hexToFloat(fliphextstring(“0x”+str.substr(10,8))
}

log(yourStringToFloat('450934644ad7a38441')这是否回答了您的问题?谢谢你的评论,我已经尝试过调整这个解决方案,但是我无法让它工作。我是javaScript新手,所以我很难找到适合自己语言的答案problem@MohamedRady是的,我试过了,在旁注中使用parseInt(data.substring(10),16)类似于:parseInt('0x'+data.substring(10)),如果您想要最后8个字符,
data.substr(-8)
可能在语义上更好。感谢您的回复,我真的很感激!这对我帮助很大