【发布时间】:2021-04-12 09:08:46
【问题描述】:
我正在尝试解析来自某些传感器的数据,我收到的数据是十六进制数字 f.e.: '450934644ad7a38441' 我想提取最后 8 个字符,即温度值,并将其转换为可读数字。 我试过这个网站:https://www.scadacore.com/tools/programming-calculators/online-hex-converter/
在这里,当您输入 d7a38441 时,它会被处理并且想要的数字在 Float - Little Endian (DCBA) 系统下。 它所做的转换也是在 UINT32 - Big Endian (ABCD) 系统下进行的
如何将此数字转换为浮点数?我尝试在这里阅读其他一些问题,但找不到解决方案。 parseFloat() 给我 NaN。
我会很感激。
var data = '450934644ad7a38441';
function main(data) {
var result = [
{
"key": "temperature",
"value": parseInt('0x'+data.substring(10))
}
]
return result;
}
console.log(main(data));
// expected output: Array [Object { key: "temperature", value: 16.58 }]
【问题讨论】:
-
感谢 cmets,我已经尝试调整此解决方案,但无法使其正常工作。我是 javaScript 新手,所以我很难为我的问题找到合适的答案
-
@MohamedRady 是的,我试过了,使用 parseInt(data.substring(10),16) 类似于: parseInt('0x'+data.substring(10))
-
附带说明,如果您想要最后 8 个字符,
data.substr(-8)在语义上可能会更好。
标签: javascript json