我的5岁孩子问我:计算机中最大的数字是多少?
我们不是在谈论特定数据类型的最大值,而是计算机可以表示的最大数字。
无限大是不被允许的。
更新:我的孩子总是想要打印出来,那么假设计算机需要打印这个数字并且孩子知道它是一个很大的数字。当然,实际上我们不会打印,因为树木不够用。
我的5岁孩子问我:计算机中最大的数字是多少?
我们不是在谈论特定数据类型的最大值,而是计算机可以表示的最大数字。
无限大是不被允许的。
更新:我的孩子总是想要打印出来,那么假设计算机需要打印这个数字并且孩子知道它是一个很大的数字。当然,实际上我们不会打印,因为树木不够用。
硬盘的总容量将显然限制您放入PC中的硬盘数量。毕竟,您可以在占用所有磁盘空间的文本文件中存储一个数字。
即使是在简单的盒子中,您也可以拥有4x2Tb的驱动器,因此可用空间约为8Tb。如果以二进制形式存储,则最大的数字是2 pow 64000000000000
。
如果您的硬盘容量为1TB(8'000'000'000'000位),并且您想将其上可打印的数字以十六进制数形式打印在纸上(虽然没有人会这样做,但让我们假设一下),那么需要2,000,000,000,000个十六进制数字。
每页可以包含4000个十六进制数字(40 x 100个数字)。这就需要500,000,000页。
现在将这些页面叠放在一起(假设每页厚度为0.004英寸/0.1毫米),那么这个堆叠高度将达到5公里(约3英里)。
我会尝试给出一个实用的答案。
Common Lisp 的数值计算特别强大。它有一种叫做“bignums”的东西,这是可以任意大的整数,只受可用内存的限制。
参见:http://en.wikibooks.org/wiki/Common_Lisp/Advanced_topics/Numbers#Fixnums_and_Bignums
这取决于计算机的处理能力有多强。虽然有时计算机可以处理比 (2^(bits-1)-1) 更大的数字...例如: 我的电脑是64位的(9223372036854775807),但是自带计算器可以处理高达10^9999的数字。
许多其他超级计算机可以超过这些限制,而具有最大内存(位数)的计算机可能也是目前能够容纳最大数值的计算机。
如果需要在计算机上可视化呈现,则可以编写一个程序,在屏幕上重复写入数字"9"并不跳过该行,以形成越来越多的“9”。:P
我来到这里寻找可以用标准知识在有限的空间内传达的最大数。我决定只使用8个字符,最终选择了这个: 'FF^FFFFF' 虽然需要展开,但这是我发现的可以用8个字符表示的最大数字。 这相当于255^1,048,575。 约为7.41 * 10 ^ 2,523,437。 这是741和2,523,435个零。 这比可观测宇宙中的质子数量还要多。仅有80个小数位。
在Chrome浏览器中,点击右上角的三个点,然后选择“工具”,再选择“开发者工具”,点击“控制台”并输入“Number.MAX_VALUE”。