Mailinglisten-Archive |
Hallo Bastian, das LeC habe ich nur mal hingeschrieben (war meine definition von little endian encoding) die funktion die du hier geschrieben hast gibts in PHP leider schon :o) . http://de3.php.net/manual/de/function.dechex.php Also ich brauche eine funktion die mir auf 32Bit ebene (little endian encoding) alles ausgibt (sieh unten das beispiel) Little endian : "Bezeichnet eine Anordnung der Bytes nach unterschiedlichen Systemen bei unterschiedlichen Computerarchitekturen. Bei little-endian hat das am wenigsten signifikante Byte die niedrigste Adresse (little end first)." Das heisst wenn wir eine Zahl z.b.: [fa ea 00 00] haben wird in little endian [ea fa 00 00] draus Und diese logik möchte ich darstellen (aus einer dezimalen zahl) d.H. der erste schritt ist die dezimal zahl in Hex umzuwandeln .... nehmen wir doch mal die Zahl 1234 $Zahl = 1234 ; $Hex = dechex ($Zahl) ; // Ergebniss 4D2 So nun taucht das Problem auf.... ich will diese Zahl erst mal in 32 Bit (4 Byte) angezeigt haben ---> 45 02 00 00 Und dann in little endian codieren ---> 02 45 00 00 ----- Original Message ----- From: "Bastian Haustein" <phpug at haustein.plan-i.de> To: "deutschsprachige PHP-Mailingliste" <php at phpbar.de> Sent: Tuesday, November 25, 2003 9:17 PM Subject: Re: [php] little endian encoding ? > Hallo Anton! > > > Diese muss 32bit (also 4 Byte) little endian (LeC) hex (Hex) codiert > werden > > LeC kenn ich leider nicht, aber hex sollte einfach sein: > > function dec2hex($inp){ > while($input>0) { > $tmp = $inp%16; // Ich hoffe, dass % in PHP auch der Modula-Operator > ist? > $inp -=$tmp; > if($tmp<10) $ret = $tmp.$ret; > if($tmp==10) $ret = 'A'.$ret; > if($tmp==11) $ret = 'B'.$ret; > if($tmp==12) $ret = 'C'.$ret; > if($tmp==13) $ret = 'D'.$ret; > if($tmp==14) $ret = 'E'.$ret; > if($tmp==15) $ret = 'F'.$ret; > } > return $ret; > } > > Ungetestet, kann sein, dass du da noch was korigieren mußt, aber vielleicht > läufts ja auf anhieb ;-) Wenn LeC so ähnlich wie Hex funktioniert kannst du > ja evtl. genauso vorgehen? > > Grüße! > > Bastian! > > PS.: Falls Du den Modula-Operator nicht kennen solltest: er gibt dir den > "Rest" beim Teilen durch die Zahl hinter dem Operator zurück, also 17%16 = 1 > oder 18%16=2 oder 32%16=0 oder 33%16=1 oder 48%16=0 oder 21%7=0 oder 22%7=1 > etc. > > -- > ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de ** > Informationen: http://www.phpbar.de > http://lists.phpbar.de/mailman/listinfo/php
php::bar PHP Wiki - Listenarchive