Beiträge von derWessi

    Hallo Tom,
    sorry, ich war im Urlaub und hab erst grade gesehen, dass du nochmal was zu dem Thema geschrieben hast.

    Ich hab mir grad nochmal Yves Beitrag im WCM-Forum angeschaut. Dort scheint mir einiges durcheinander geraten zu sein. Die Werte, die Yves im Hex-Editor hervorgehoben hat sind nicht vollständig - die jeweils 8 Ziffern vor den fett markierten gehören zu den Zahlen mit dazu.
    840000009999993F --> konvertiert nach Big-Endien: 3F 99 99 99 00 00 00 84 --> 0.025
    8C000000E17AE43F --> konvertiert nach Big-Endien: 3F E4 7A E1 00 00 00 8C --> 0.64
    940000006666E63F --> konvertiert nach Big-Endien: 3F E6 66 66 00 00 00 94 ist 0.7

    Zitat

    Alle Werte sind als 32-bit Double gespeichert (z.B. 99 99 A9 3F für 0.05), bei diesen kleinen Zahlen meist an der Endung 3F zu erkennen


    Diese Aussage ist somit tatsächlich falsch (und macht auch keinen Sinn, da ein double per Definition 64 bit lang ist). 3F ist übrigens kein Indikator für eine 64 Bit Gleitkommazahl.
    Auch die angegebenen Offsetwerte scheinen somit falsch zu sein (jeweils um 4 Bytes verschoben):
    Rollreibungskoeff. ist nicht auf der 48cbc, sondern auf der 48CB8
    Gleitreibungskoeff ist nicht auf der 48cd2 sondern auf der 48CCE
    Bremskoeff ist nicht auf der 48ce8 sondern auf der 48CE4
    Ich vermute mal, dass auch die anderen angegebenen Offsetwerte jeweils um 4 Bytes falsch sind.

    Zitat


    Ich hab also, wie Andreas oben geschrieben hat, erst das ganze umgedreht und dann die letzten 8 Stellen inklusive 3F genommen:


    E17A743F

    Nur ist das ja irgendwie kein richtiger Wert mehr...


    Stimmt, dass kann so nicht funktionieren. Wenn du eine 64 Bit Gleitkommazahl einfach in der Mitte durchschneidest, kommt einfach nur Datenmüll dabei raus. 0.001 müsste FC A9 F1 D2 4D 62 50 3F sein (bereits gedreht in die Intel-Reihenfolge).
    F747AE147AE147B ist übrigens nicht 0.001 sondern 0.005.
    Ich hoffe, ich konnte dir ein wenig weiterhelfen.
    Viele Grüße,
    Andreas

    Weiß jemand, wie man 9999993F in eine Dezimalzahl konvertiert, bzw. umgekehrt?

    Danke euch! Allerdings hatte ich diese Umrechner auch schon gefunden. Versteh nur nicht so wirklich, wieso 257698.... dann 0.025 ergeben soll. Eventuell teilt der Flusi noch durch 1000, aber das muss ich noch testen :)

    Hallo,
    euer Umrechner rechnet nur mit ganzen Zahlen. Was ihr braucht ist ein Umrechner für IEEE-754 Gleitkommazahlen.
    Z.B. hier zu finden (der erste link).
    0.025 ergibt z.B. als 64 bit double-Gleitkommazahl: 3F9999999999999A


    Auf Intel-Prozessoren ist das ganze im Speicher noch paarweise gedreht (Little-Endian/Big-Endian Problematik), so dass die Zahl im Hex-Editor etwa so aussehen müsste: 9A 99 99 99 99 99 99 3F

    Viele Grüße,
    Andreas