大于2147483647或小于-2147483647将当成浮点数处理

解决方案 »

  1.   

    多上php.net看看函数说明,PHP内建变量都是bigint型的,但是dechex这个函数只提供了32位int的转换,php.net的评论里有很多方法转换大于32位的整数,http://us4.php.net/manual/en/function.dechex.phpfunction dec2hex($number)
    {
       $hexvalues = array('0','1','2','3','4','5','6','7',
                   '8','9','A','B','C','D','E','F');
       $hexval = '';
         while($number != '0')
         {
           $hexval = $hexvalues[bcmod($number,'16')].$hexval;
           $number = bcdiv($number,'16',0);
       }
       return $hexval;
    }