8

对于某些人来说,这可能是一个非常简单的问题,但我想知道出现在BigInteger的 JavaDoc 第一行中的任意精度的含义:

不可变的任意精度整数。

4

2 回答 2

9

这意味着BigInteger使用尽可能多的空间来保存整个价值。

int个例子。它具有固定数量的可用位。有了它,您可以保存-2,147,483,6482,147,483,647(包括)之间的值。所以它是固定精度类型而不是任意精度类型。它不能存储超出此范围的值。

使用BigInteger,您就不会有这个问题,因为一旦分配的位不足以存储确切的值,BigInteger就会添加一些位,以便它可以再次处理该值。

任意实际上并不是真的,因为由于只有有限数量的可用内存,所以存在限制。该限制不是由BigInteger类给出的,而是由环境(VM/硬件/OS)给出的。

于 2012-08-23T09:47:28.920 回答
8

术语固定精度意味着内部表示中仅保留一定数量的有效数字。这意味着您将无法用大于某个阈值的幅度来表示每个整数。

对于任意精度的整数,整数可以根据需要(“任意大”)任意大,并且库会将所有数字保持在最低有效单位。(这显然受到计算机内存量的限制。)

于 2012-08-23T09:45:18.897 回答