我从(串行)设备返回一段代码。我有4个字节的信息需要从中获取可用的,人类可读的值。
我尝试了很多来自互联网的代码示例,但我无法控制它。
以下是结果的示例,但没有关于如何在JavaScript中执行此操作的公式:
34 32 33 39 37 30 41 34 Bus voltage-float: A4703942=46.36
// ( so Voltage is 46.36 )
如何从JavaScript中的Hex A4703942
获取此内容?
我知道这与浮子,小端或大端有关...是吗?
答案 0 :(得分:0)
检查以下网址
http://babbage.cs.qc.cuny.edu/IEEE-754.old/32bit.html
在上面的URL中,输入字符串423970A4,这是您的字节字符串的反向(因为那个结尾的东西)并单击compute,您将得到46.36。
此网址页面中的JavaScript可帮助您进行此转换。
答案 1 :(得分:0)
或多或少地回答我自己的问题:
//从返回的Hex中提取可用数据
function roundToTwo(num) {
return +(Math.round(num + "e+2") + "e-2");
}
print or whatever (roundToTwo(hex2float("0x"+<yourhexInput>)));[/CODE]
//使它成为一个漂亮的4位数字
function swap32(val) {
return ((val & 0xFF) << 24)
| ((val & 0xFF00) << 8)
| ((val >> 8) & 0xFF00)
| ((val >> 24) & 0xFF);
}
(有时需要翻转字节/十六进制才能成为正确的输入)
例如:
MeshStanardMaterial