ARG: Der Titel sollte heißen OctetString --> Float
Servus,
ich spiele gerade etwas mit SNMP rum um Werte aus einem Netzwerkgerät auszulesen, das funktioniert auch bei den Werten welche als "Klartext" vorliegen wie z.B. Integer
Jetzt liegen allerdings auch einige Werte als OctetString vor, die Konvertierung in ASCII habe ich hinbekommen
Jetzt gibt es aber auch Werte die müssen in FLOAT umgerechnet werden
Da habe ich jetzt z.B. e6d94c41
welches dann 12.8 Volt ergeben sollte
wenn ich das umrechne dann erhalte ich aber -5.1308008E23
Die MiB zum Wert sagt
- OCTECT STRING (SIZE(4))
- It should be changed to float format
So wo liegt der Fehler ?
Servus,
ich spiele gerade etwas mit SNMP rum um Werte aus einem Netzwerkgerät auszulesen, das funktioniert auch bei den Werten welche als "Klartext" vorliegen wie z.B. Integer
Jetzt liegen allerdings auch einige Werte als OctetString vor, die Konvertierung in ASCII habe ich hinbekommen
Java:
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();
}
Jetzt gibt es aber auch Werte die müssen in FLOAT umgerechnet werden
Da habe ich jetzt z.B. e6d94c41
welches dann 12.8 Volt ergeben sollte
wenn ich das umrechne dann erhalte ich aber -5.1308008E23
Java:
String myString = "e6d94c41";
Long i = Long.parseLong(myString, 16);
Float f = Float.intBitsToFloat(i.intValue());
System.out.println(f);
System.out.println(Integer.toHexString(Float.floatToIntBits(f)));
Die MiB zum Wert sagt
- OCTECT STRING (SIZE(4))
- It should be changed to float format
So wo liegt der Fehler ?