3

转换为 GB,它就像 2 GB。

但是我现在在 32 位 Windows 上运行,我可以拥有比这更大的文件。

那么为什么 PHP 将这个数字限制为 2147483647 呢?如果 Windows 可以处理更大的数字,PHP 不应该也可以吗?

4

3 回答 3

9

2147483647 是您可以使用 32 位存储的最高有符号数。PHP 以这种方式存储它的数字,因为它们就是这样存储在您的计算机中的。再高一点,数学和一切都会变得复杂得多。Windows 也将使用 32 位数字。我不确定它如何处理大于 2 GB 的文件,但我猜在这些情况下它可以通过更复杂的代码以某种方式解决它。

于 2012-12-19T22:17:04.543 回答
5

2,147,483,647 是可以存储在 32 位中的最大数字。您的处理器只有 32 个插槽来填充位,比这更大的数字将更复杂,并且需要更多的开销来计算。相反,您可以拥有的最小数字是 -2,147,483,648,这也是因为没有更小的数字可以存储在 32 位中。

如果想在 32 位系统上计算更大的数字,则必须解决此限制。当然有解决方法,但在一般的 web 应用程序上不太可能需要。

于 2012-12-19T22:24:15.067 回答
4

2,147,483,647 是有符号 4 字节值的最大值2 31 -1。您可能喜欢使用 long,即 2 63 -1 = 9,223,372,036,854,775,807。

于 2012-12-19T22:13:13.120 回答