我只是希望测试一个整数溢出,比如在C中(好吧,如果它总是超过整数max)。当我查看PHP是否确实在按照我的要求进行操作时,由于某种原因它似乎失败了。这里是我的问题的测试:PHP:在32位系统上INT_MAX显示错误?
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中使用十六进制时的情况?
我不知道该十六进制表示只存储它在小数到底。我只是错误地从十六进制恢复它,谢谢! – John 2010-09-15 22:54:57