Hallo, ich habe eine .dat-Datei eines Datenloggers in der kryptische Zeichen drinnenstehen. Bei genauerer Betrachtung mit einem Hex-Editor konnte ich herausfinden, dass es sich dabei um double-Werte handelt. Nun möchte ich die Daten mit einem Programm (in C) einlesen und in leserlicher Form wieder in ein Textfile speichern. Da ich keinen Befehl gefunden habe der direkt double-Werte einlesen kann habe ich die char-Eingelesen. Nun habe ich 8-char-Variablen die die binärwerte enthalten. Diese wollte ich mit Binäroperatoren (oder) in die double Variable schreiben und dann mit << an die richtige Stelle in der double Variable schieben. Das funktioniert allerdings nicht weil man auf Gleitkommawerte anscheinend keine Binäroperatoren anwenden kann. Ich hoffe ihr versteht was ich machen will. char c[0] = 20; //00010100 char c[1] = 174; //10101110 char c[2] = 176; //10110000 char c[3] = 87; //10110000 char c[4] = 93; //10110000 char c[5] = 232; //10110000 char c[6] = 123; //10110000 char c[7] = 64; //10110000 ... daraus soll eine double Variable werden: double result = 4.465e+02 //entspricht: 00010100 10101110 10110000 ...
wenn es wirklich das double format von C ist kannst du einfach double d read( filehandle, &d, sizeof(d) ) machen.
Eventuell so?
1 | double result = *(double*)c; |
Hab jetzt nicht nach der Byteorder geschaut, eventuell mußt Du die hierfür im Array umdrehen.
(kein) schrieb: > mr08b002 schrieb: >> Da ich keinen Befehl gefunden habe der direkt double-Werte einlesen > fscanf() Unfug, dafür müssten die Zahlen menschenlesbar sein. Sry.
(kein) schrieb: > (kein) schrieb: >> mr08b002 schrieb: >>> Da ich keinen Befehl gefunden habe der direkt double-Werte einlesen >> fscanf() > Unfug, dafür müssten die Zahlen menschenlesbar sein. Sry. Noch mehr Unfug, sie müßten als Text (und damit "menschenlesbar") vorliegen.
... schrieb: > (kein) schrieb: >> (kein) schrieb: >>> mr08b002 schrieb: >>>> Da ich keinen Befehl gefunden habe der direkt double-Werte einlesen >>> fscanf() >> Unfug, dafür müssten die Zahlen menschenlesbar sein. Sry. > Noch mehr Unfug, sie müßten als Text (und damit "menschenlesbar") > vorliegen. Genau das meinte ich.
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.