Int to Hex Problem

l0c4lh05t

Erfahrenes Mitglied
PHP:
<?php
  define('BIT_BYTE', 8); // bits per byte
  define('HEX_BYTE', BIT_BYTE/4); // hex digits in a byte

  define('BIT_INT',  32); // sizeof(int)
  define('HEX_INT',  BIT_INT / (BIT_BYTE/HEX_BYTE)); // hex digits in an int

  function i2h($int, $group=HEX_BYTE, $size=HEX_INT, $sep=' ') {
   $ret = '';
   while($size--) {
     $n=($int>>($size*4)) & 0xf;
     $ret .= $n>9?chr(55 + $n):$n;
     if($size && $size%$group == 0) $ret .= $sep;
   }
   return $ret;
  }

  echo i2h(3001);
?>
Ergebnis: 00 00 0B B9
Ich bräuchte aber: B9 0B 00 00
(Also einfach die umgekehrte Reihenfolge)
Weiß jemand wie ich die Reihenfolge der Gruppen umkehren kann?
 
PHP:
<?php
  define('BIT_BYTE', 8); // bits per byte
  define('HEX_BYTE', BIT_BYTE/4); // hex digits in a byte

  define('BIT_INT',  32); // sizeof(int)
  define('HEX_INT',  BIT_INT / (BIT_BYTE/HEX_BYTE)); // hex digits in an int

  function i2h($int, $group=HEX_BYTE, $size=HEX_INT, $sep=' ') {
   $ret = '';
   while($size--) {
     $n=($int>>($size*4)) & 0xf;
     $ret .= $n>9?chr(55 + $n):$n;
     if($size && $size%$group == 0) $ret .= $sep;
   }
   $ret = explode(" ", $ret);
   $ret = array_reverse($ret);
   $ret = implode(" ", $ret);
   return $ret;
  }

  echo i2h(3001);

?>
Unschön, aber es funktioniert... ;)
 
Zurück