Вам действительно нужно хранить эту информацию в числовой форме? Современные компьютеры имеют много свободного места.
В любом случае вы можете использовать PHP для преобразования чисел большего размера.
Мое скромное решение - не полагаться на типы, предоставляемые PHP, и использовать BCMath Arbitrary Precision Matmatics .
В соответствии с руководством библиотека поставляется в комплекте с PHP начиная с версии 4.0.4. Если вы запускаете PHP в Windows, это работает прямо. В противном случае вам необходимо настроить - enable-bcmath .
Благодаря комментариям пользователей на сайте PHP.net я обнаружил две удобные функции:
<?php
/* hexadecimal to/from decimal functions from user contributed notes at http://it.php.net/manual/en/ref.bc.php */
function bchexdec($hex) {
if(strlen($hex) == 1) {
return hexdec($hex);
} else {
$remain = substr($hex, 0, -1);
$last = substr($hex, -1);
return bcadd(bcmul(16, bchexdec($remain)), hexdec($last));
}
}
function bcdechex($dec) {
$last = bcmod($dec, 16);
$remain = bcdiv(bcsub($dec, $last), 16);
if($remain == 0) {
return dechex($last);
} else {
return bcdechex($remain).dechex($last);
}
}
echo bcdechex (130646634308);
echo '<br />';
echo bchexdec ('001e6b256f44');
?>