Geschätztes Forum,bitte helft mir. Im Programm sPLAN wird z.B, die X-Koordinate mit 3 Bytes gespeichert. Aber wie erfolgt die Kodierung? Byte1----Byte0------angezeigte Koordinate 00000000-00000000--> 0 01000001-00100000--> 1 01000001-10100000--> 2 01000001-11110000--> 3 01000010-00100000--> 4 01000010-01001000--> 5 01000010-01110000--> 6 01000010-10001100--> 7 01000010-10100000--> 8 01000010-10110100--> 9 01000010-11001000--> 10 01000010-11011100--> 11 01000010-11110000--> 12 01000011-00000010--> 13 01000011-00001100--> 14 01000011-00010110--> 15 01000011-00100000--> 16 01000011-00101010--> 17 01000011-00110100--> 18 01000011-00111110--> 19 01000011-01001000--> 20 Hier im Beispiel habe ich Byte2 mal ausgeblendet, ist Null. Danke Bernhard
Bernhard S. schrieb: > Aber wie erfolgt die Kodierung? Das dürfte eine Gleit- oder Festkommadarstellung sein. Offensichtlich wird intern mit mit einer anderen Einheit gerechnet als der angezeigten. Es gilt also, zuerst mal das Maximum und das Minimum der Anzeige-Einheit zu finden. Dann schaut man sich an, was das jeweils encodiert ergibt. Aus den beiden Sachen kann man mit einiger Sicherheit erstmal ermitteln, ob Gleit- oder Festkomma und auch den Umrechnungsfaktor zur Binärdarstellung. Bei Gleitkomma auch noch, wie sich die Bits auf Mantisse und Exponent verteilen, da ist man dann also schon fertig (jedenfalls für die regulären Fälle). Bei Festkomma ist dann hingegen noch ein wenig Heuristik nötig, um die Lage des virtuellen Kommas zu ermitteln und damit die tatsächlich intern verwendete Einheit. Ich würde übrigens vollkommen empirisch darauf tippen, dass es tatsächlich nicht drei, sondern 6 Bytes pro Zahl sind und Gleitkomma. Sprich: Datentyp "single". Und die Einheit dürfte irgendwas wie 1/72" oder 1/96" sein.
...ok, danke für den Tipp, werde mich nochmals intensiv mit den einzenen Bits beschäftigen
Werden die Koordinaten bei unterschiedlichen Zoom, Rastermaß Einstellungen denn immer gleich gespeichert? Wen nicht, könnte man mit ein wenig Glück durch vergleichen auf die Lösung kommen.
c-hater schrieb: > Das dürfte eine Gleit- oder Festkommadarstellung sein. Offensichtlich > wird intern mit mit einer anderen Einheit gerechnet als der angezeigten. Was mir gerade noch einfällt: Es besteht die realistische Möglichkeit, dass man irgendwo in den Optionen des Programms die Anzeige-Einheit konfigurieren kann. Wenn das so ist, kann man davon ausgehen, dass eine der hier angebotenen Optionen entweder direkt der intern verwendeten Einheit entspricht oder zumindest in einem ganzzahligen Verhältnis zu dieser steht. Das würde die weiteren Ermittlungen dramatisch vereinfachen...
Holger L. schrieb: > Wen nicht, könnte man mit ein wenig Glück durch vergleichen auf die > Lösung kommen. Wenn man den Bytewert (Byte1 * 256 + Byte0) gegen die angezeigte Koordinate plottet, sieht man, dass die Steigung bereichsweise vom Wert der angezeigte Koordinate abhängt. Die Steigung ändert sich jeweils um einen Faktor 2, was IMHO für eine Float Kodierung mit spricht.
@alle Danke für Eure Hilfe und Tipps, diese führten zur Lösung. Es ist eine Fließkommazahl Die Koordinaten für sPlan40, sPlan50, sPlan60 und sPlan70 werden mit diesem Verahren abgespeichert. Einen einfachen 32Bit-Float-Rechner fand ich hier: https://www.h-schmidt.net/FloatConverter/IEEE754de.html Bernhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.


