Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Binär-daten in Zahlen konvertieren - how to?

Hallo,

lese (bereits erfolgreich) Daten aus einer Datei, in der z.B. Floating-Point-Zahlen in binär codierter Form enthalten sind, die ich (noch nicht erfolgreich!) in PHP als Zahlen verwenden können möchte.

Die Zahlen liegen z.B. in IEEE-754-double precision-Kodierung vor, d.h. haben 64 Bits, wobei die einzelnen Bits eben die Bedeutung haben, wie z.B. unter [url]http://research.microsoft.com/~hollasch/cgindex/coding/ieeefloat.html[/url] beschrieben.

Kann mir jemand helfen, aus den 64 Bits, die ich z.B. in ein Byte-Array eingelesen habe, PHP-Zahlen zu machen, so dass ich damit in PHP rechnen kann?
Oder gibt's irgendwelche URLs, wo man sich über sowas selber informieren kann?

Danke schon mal im Voraus!!

MfG pseuto16

Hier gehts zum Orginal Eintrag "Binär-daten in Zahlen konvertieren - how to?" im Forum

Antworten

Hm, ich weiß gar nich so genau, wo das Problem liegt. Du hast doch eine Beschreibung des Zahlenformates. Folgende Schritte:

1. Du berechnest aus den "fraction bits" die Mantisse
2. Du berechnest aus den Exponenten-Bits den Exponenten (einfach Integer-Zahl)
3. Du berechnest die richtige Zahl durch Mantisse * 2^Exponent
4. Du rechnet das ganze mal -1, wenn das "sign"-Bit das vorgibt.


2.

Hi oimel,

du hast ja so Recht! Ich musste lediglich
Zitat:
meine Brille putzen
.
Es lag ja eigentlich schon auf der Hand, ich musste es nur noch nehmen.

Danke.

MfG pseuto16



Zitat:
oimel postete
Hm, ich weiß gar nich so genau, wo das Problem liegt. Du hast doch eine Beschreibung des Zahlenformates. Folgende Schritte:

1. Du berechnest aus den "fraction bits" die Mantisse
2. Du berechnest aus den Exponenten-Bits den Exponenten (einfach Integer-Zahl)
3. Du berechnest die richtige Zahl durch Mantisse * 2^Exponent
4. Du rechnet das ganze mal -1, wenn das "sign"-Bit das vorgibt.



3.

Hi,

ich habe zwar eine Funktion, die das wie hier beschrieben berechnet, aber nun ein Performance Problem. Ich habe eine sehr große Datei mit sehr vielen Floats und das ganze ist viel zu langsam. Gibt es da noch eine andere Möglichkeit???
Danke,

Felix


4.

Wie es aussieht nein, aber vielleicht lässt sich Deine Funktion einfach effizienter implementieren?


5.

Zitat:
oimel postete
Wie es aussieht nein, aber vielleicht lässt sich Deine Funktion einfach effizienter implementieren?
Leider nicht wesentlich effizienter. Ich werde diesen Programmteil dann halt in C++ machen und von PHP aus aufrufen. Das passt an der betreffenden Stelle von der Prgrammlogik zum Glück ganz gut.
Danke für die schnelle Antwort,

Felix


Hier gehts zum Orginal Eintrag "Binär-daten in Zahlen konvertieren - how to?" im Forum
 
phpforum.de | Impressum | Handy Bundles