Interpretation HEX Wert

#3882346
Lesenswert?

Hi,

ich versuche gerade ein Format zu verstehen. Es handelt sich um 
OpenTherm Nachrichten. Ich habe ein Tool, was die Nachrichten übersetzt. 
Die Codierung verstehe ich aber nur teilweise:

Ankommende Nachricht:
C0192B20 - Übersetzt zu => ID: 25, Wert: 43.13
401F1FDC - Übersetzt zu => ID: 31, Wert: 31.86

Was ich rausgefunden habe:
Stelle 3+4 codiert die id hexdezimal. Also 19 = 25, 1F = 31.
Stelle 5+6 codiert die Zahl vor dem Komma. Also 2B = 43, 1F = 31.

Wo und wie wird aber die Nachkommazahl kodiert? Kann mir wer helfen?

Danke
#3882373
Lesenswert?

Wollte es gerade schreiben - habe die Stelle im Quellcode nachgeguckt:
1
proc float {val} {
2
    if {$val & 0x8000} {set val [expr {$val - 65536}]}
3
    return [format %.2f [expr {$val / 256.}]]
4
}

Warum wird denn durch 256 geteilt? Was genau soll der Ausdruck in der 
if-Bedingung bewirken?

Danke

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren