目前我正在使用 SNMP(snmp4j 和 SimpleSnmpClient)从网络设备获取一些信息。只要结果是像整数这样的“正常”值,它就可以工作。
如果值是像 44:00:4f:00:30:00:4a:00:47:00:20:00:4d:00:49:00:58:00:00:00:00:00 这样的 OctetString :00:00:00:00:00:00:00:00:00:00 标记为 Unicode 我也可以解码它,但在我必须替换“:”之前
hex2AscII(sysDescr.replace(":", "")
用这个方法
static String hex2AscII(String hex) {
StringBuilder ascii = new StringBuilder();
for (int i = 0; i < hex.length(); i+=2) {
String str = hex.substring(i, i+2);
ascii.append((char)Integer.parseInt(str, 16));
}
return ascii.toString();
}
MiB 说,现在我想获得电压的值
- 八进制字符串(大小(4))
- 应该改成float格式
好的,我执行 SNMP 查询并得到结果: e6:d9:4c:41
女巫应该是12.8伏左右的电压
现在我尝试将其转换为 Float
System.out.println("################# TestSection ################# ");
int hex = 0xE6D94C41;
f = Float.intBitsToFloat(hex);
System.out.println(f);
System.out.printf("%f", f);
并得到 -5.1308008E23
e6d94c41
那么我的代码有什么问题?