Мне нужно в php читать из файла строки вида ffffffffffffffff (шестнадцатиричное представление int64_t производить с ними сложение/вычитание и записывать в файл. Проблема в том что не получается работать с такими большими числами, смотрите:
$ php test.php
gettype(a): integer
a:-1
b:ffffffffffffffff
gettype(b): string
gettype(b): integer
b:0
c:1.844674407371E+19
gettype(c): double
gettype(c): integer
c:0
<?php
$a = 0;
settype($a, 'integer');
echo "gettype(a): ".gettype($a)."\n";
$a -= 1;
echo "a:".$a."\n";
$b = dechex($a);
echo "b:".$b."\n";
echo "gettype(b): ".gettype($b)."\n";
settype($b, 'integer');
echo "gettype(b): ".gettype($b)."\n";
echo "b:".$b."\n";
$c = 0xffffffffffffffff;
echo "c:".$c."\n";
echo "gettype(c): ".gettype($c)."\n";
settype($c, 'integer');
echo "gettype(c): ".gettype($c)."\n";
echo "c:".$c."\n";
?>