Java是否支持任意大小的数字?

时间:2016-05-29 15:56:35

标签: java integer

使用Java,我试图通过这样的问题列表:

  

编写一个打印所有素数的程序。 (注意:如果您的编程语言不支持任意大小的数字,那么将所有素数打印到您可以轻松表示的最大数字也很好。)

他们的意思是"所有素数高达n"?我如何知道Java是否支持任意大小的数字,如果是,它是什么?

2 个答案:

答案 0 :(得分:2)

Java的原语具有明确定义的范围。例如,int s介于-2 31 和2 31 -1之间。您可以在Java's tutorial中查看完整的详细信息。如果你想表示比long原语允许的更大的整数(即2 63 -1),你将不得不求助于使用BigInteger类。

答案 1 :(得分:1)

打印所有素数的程序将是一个非暂停程序。有无限多的素数,所以你可以永远运行程序。

大多数语言中的基本数字类型都有一定数量的内存空间,因此它们可以表达有限的数字范围。例如,Java int以4个字节存储。这将使非停止素数计划变得不可能,因为你最终会获得比你可以存储的最大数量更大的素数。

除原始数字类型外,许多语言都有任意大小的数字类型。当您存储较大的数字时,它们使用的内存量将会增加。为此目的,Java有BigInteger,而Python只是默认存储所有数字。

尽管这些任意大小的数字最终都受到程序可以访问的内存量的限制。实际上,无法打印所有素数

你要解决的问题是什么,他们不想让你为此烦恼!只需使用您所用语言的标准数字类型即可。没有系统能够计算无限多的质数。他们希望你做的是编写计算无限多个素数的算法,给定系统和数据类型能够这样做。

或许他们可以更好地措辞。简而言之:不要担心。