| |
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 |
|
|
 |
 |
 |
| |
Antworten |
|
| |
1. 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
|
|
|