Hex-Daten einlesen und als 8 Byte Float ausgeben?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hex-Daten einlesen und als 8 Byte Float ausgeben?

    Habe folgendes Problem:

    Habe ein Datei mit Hex-Daten:

    77 01 36 16 cd b9 49 40 36 4f fc 58 cb b9 49 40
    81 a0 0c 95 c9 b9 49 40 102 98 45 c3 c7 b9 49 40
    usw.

    Diese Datei würde ich gern einlesen und aus jeweils 8 Byte (77 01 36 16 cd b9 49 40 ) ein Float-Number generieren!

    Ist dies mit PHP überhaupt möglich?

    Ansatz zum einlesen von jeweils 8 Byte:

    PHP-Code:
    $datei "X_1DC211.C01"
     
    $sum ;
     
    $fp=fopen($datei,"rb");
     while (!
    feof($fp)) {
      
    $word=fread($fp,8);
    }
     
    fclose($fp); 
    Kann mir jemand helfen?

    Danke im Voraus

    TG

  • #2
    hexdec
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      ganz grob:
      PHP-Code:
      $data chr (0x77).chr (0x01).chr (0x36).chr (0x16).chr (0xcd).chr (0xb9).chr (0x49).chr (0x40);
      $content unpack("d*"$data);
      print_r($content); 
      in deinem ansatz kann man $word direkt statt $data nehmen.

      Kommentar


      • #4
        Ja hab ich ja auch schon gesehen!

        PHP-Code:
        hexdec($word); 
        Wenn ich nun alle 8 Byte zu einem String zusammen setze und hexdec() ausführe, kommt folgendes raus:

        M6͹I@

        Sind die ASCII-Zeichen der Hex-Werte! Meine Hex-Werte (8-Byte) ergeben jeweils eine Gleitkommazahl mit Vorzeichen!
        Diese Funktion hatte ich zuvor auch schon probiert!

        In C# is das kein Problem!

        Hilft mir leider nicht so weiter!

        Kommentar


        • #5
          Ja danke penizillin !

          So klappt es! Vielen Dank nochmal!

          Kommentar

          Lädt...
          X