Код:
echo $hex = dechex("10000000000000000000");
echo '<br>';
echo number_format(hexdec($hex), 0, '.', '');
Результат:
7fffffffffffffff
9223372036854775808
Вопрос: можно ли перевести число больше 9223372036854775808 в hex?
Можно написать свои функции конвертации и работать со строками, а не с числами через функции для произвольной точности вычислений
<?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);
}
}
var_dump($hex = bcdechex("10000000000000000000"));
var_dump(bchexdec($hex));
Результат:
string(16) "8AC7230489E80000"
string(20) "10000000000000000000"
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости