вам действительно нужно хранить эту информации в цифровой форме делать? Современные компьютеры имеют достаточно места.
В любом случае вы можете использовать PHP для преобразования чисел, превышающих это.
Мое скромное решение состоит в том, чтобы не полагаться на типы, предоставляемые PHP, и использовать BCMath Arbitrary Precision Mathematics.
Согласно руководству, библиотека поставляется в комплекте с 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');
?>
Мне нужно сохранить их как целые числа в db, потому что будет множество операций, например, получить следующий/предыдущий номер в пуле, генерируя это из шестнадцатеричного представления, будет подвержен ошибкам, а целые числа - его просто +/- операции – canni