【发布时间】:2010-09-12 03:52:04
【问题描述】:
我只是想测试一个整数的溢出,例如在 C 中(好吧,如果它刚好超过整数最大值)。当我查看 PHP 是否真的按照我说的做时,它似乎由于某种原因失败了。以下是我对该问题的测试:
define('INT_MAX', 0x7FFFFFFF);
print "In decimal: " . hexdec(INT_MAX) . "<br/>";
print "In decimal: " . hexdec(0x7FFFFFFE) . "<br/>"; //Under int_max
print "In hex: " . dechex(hexdec(INT_MAX)) . "<br/>";
print "Float: " . ((bool)is_float(INT_MAX)?'true':'false') . "<br/>";
结果是:
十进制:142929835591
十进制:142929835590
十六进制:47483647
浮点数:假
正如我在手册上看到的,如果被推翻,它会变成浮动,但它似乎不是,而且显然更高。我是疯了,在这里遗漏了什么,还是在 PHP 中使用十六进制时我真的需要知道一些奇怪的问题?
【问题讨论】:
标签: php overflow compatibility hex