One more test (to get rid of compiler optimization)
int main (int argc, char *argv[]) {
double d;
if (argc>1 && sscanf(argv[1], "%lg", &d)) {
printf(" double=%.20lg\n", d);
printf(" signed=%lx\n", (long)d);
printf("unsigned=%lx\n", (unsigned long)d);
}
return 0;
}
On x86_64 (so, with or without -O2)
$ gcc -O2 -Wall math2.c -o math2 && ./math2 9223372036854775807
double=9223372036854775808
signed=8000000000000000
unsigned=8000000000000000
On ppc64
$ gcc -O2 -Wall math2.c -o math2 && ./math2 9223372036854775807
double=9223372036854775808
signed=0x7fffffffffffff
unsigned=8000000000000000
Remi.
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php