Tom: Ingeter/float aus Byte Array

Beitrag lesen

Hello,

ich versuche gerade mit meinem geringen php Kenntnissen aus einem Byte Array einen Integer bzw. float zusammenzubauen. Jedoch bekomme ich das nicht richtig hin.

Beispieldaten:

$data = Array(0xff, 0xff, 0x30, 0x39);


> Das sollen mal meine Rohdaten sein. Aus $data[0] und $data[1] würde ich ganz gerne -1 erhalten, aus $data[2] und $data[3] gerne 12345.  
>   
> Jetzt habe ich eine Funktion (ganz C-like):  
>   
> ~~~php
  

> function toSInt16($lo, $hi)  
> {  
> 	return (($lo << 8) | $hi);  
> }  
> 

welche aber nicht das Vorzeichen beachtet.
Ich habe es schon mit diversen pack/unpack versucht, komme aber nicht so recht weiter.
So in dem Prinzip brauche ich auch eine Konvertierung in einen 4-Byte float.

zeig doch bitte Deinen ganzen bisherigen Code, bitte mit guten Kommentaren dazu, was Du Dir dabei gedacht hast und was dabei wirklich herausgekommen ist.

Wenn Du es nicht nachher tatsächlich ber Bitoperatoren erledigen willst, dann ist die Unpack()-Funktion aber schon der richtige Weg dafür.

Dazu müssen die Byte-Werte in einem String angeordnet werden. Dieser kann dann mittels unpack() behandelt werden.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de