/* пример использования
$a = 1000;
$b = DoubleHex::toDHEX($a);
$c = DoubleHex::toDEC($b);

var_dump($a);
var_dump($b);
var_dump($c);

*/
class DoubleHex
{

    public static function toDHEX($dec)
    {
        $result = '';
        while ($dec>0)
        {
            $quotient = intval($dec/32);
            $ost = $dec - $quotient*32;

            $dec = $quotient; 

            if ($ost>9)
            {
                $ost = chr(65+$ost-10);
            }
            $result = $ost.$result;
        }
        return $result;

    }

    public static function toDEC($dhex)
    {
        $result = 0;
        $counter = 0;
        while ($dhex)
        {
            $point = substr($dhex, -1);
            $dhex = substr($dhex,0,strlen($dhex)-1);
            if (ord($point)>=64)
            {
                $point = ord($point)-55;
            }
            $result = $result + $point*pow(32,$counter);
            $counter++;
        }
        return $result;
    }
}