0
現在、私はSNMP(snmp4jとSimpleSnmpClient)を使ってネットワークデバイスから情報を取得しています。 結果が整数のような「通常の」値である限り、これは機能します。Java - SNMP - OctetStringをFloatに変換
のようなOctetStringの場合、44:00:4f:00:30:00:4a:00:47:00:20:00:4d:00:49:00:58:00:00: 00:00:00:00:00:00:00:00:00:00:00:00:Unicodeとしてラベルされた00 私もそれをデコードすることができますが、私は交換する必要が前に ":"
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は
語ります- オクテットSTRING(SIZE(4))
- 私がSNMPクエリを実行し、結果として得るOKフォーマット
をフロートに変更する必要があります。 E6:D9:4C:41
を魔女は今、私は
をフロートするためにそれを変換しよう 12.8ボルト周りの電圧でなければなりません
System.out.println("################# TestSection ################# ");
int hex = 0xE6D94C41;
f = Float.intBitsToFloat(hex);
System.out.println(f);
System.out.printf("%f", f);
と -5.1308008E23
e6d94c41
を得るそれでは、私のコードが間違っていますか?ここで