对于某些人来说,这可能是一个非常简单的问题,但我想知道出现在BigInteger的 JavaDoc 第一行中的任意精度的含义:
不可变的任意精度整数。
对于某些人来说,这可能是一个非常简单的问题,但我想知道出现在BigInteger的 JavaDoc 第一行中的任意精度的含义:
不可变的任意精度整数。
这意味着BigInteger
使用尽可能多的空间来保存整个价值。
举int
个例子。它具有固定数量的可用位。有了它,您可以保存-2,147,483,648
和2,147,483,647
(包括)之间的值。所以它是固定精度类型而不是任意精度类型。它不能存储超出此范围的值。
使用BigInteger
,您就不会有这个问题,因为一旦分配的位不足以存储确切的值,BigInteger
就会添加一些位,以便它可以再次处理该值。
任意实际上并不是真的,因为由于只有有限数量的可用内存,所以存在限制。该限制不是由BigInteger
类给出的,而是由环境(VM/硬件/OS)给出的。
术语固定精度意味着内部表示中仅保留一定数量的有效数字。这意味着您将无法用大于某个阈值的幅度来表示每个整数。
对于任意精度的整数,整数可以根据需要(“任意大”)任意大,并且库会将所有数字保持在最低有效单位。(这显然受到计算机内存量的限制。)