3

BigInteger 类的源代码对于 BigInteger大小的表示必须这么说:

此 BigInteger 的大小,按大端顺序排列:此数组的第零个元素是大小中最重要的 int。幅度必须是“最小的”,因为最重要的 int (mag[0]) 必须非零。这对于确保每个 BigInteger 值只有一个表示形式是必要的。请注意,这意味着 BigInteger 零具有长度为零的 mag 数组。

在这种情况下,量级的最小化是什么意思?此外,如何使最重要的 int 非零确保每个BigInteger值的一个表示形式?

4

1 回答 1

7

粗略翻译,这就是说 BigIntegers 在表示中不应该有前导零。使用“最小”一词是因为以这种方式表示的 BigInteger 用最小长度的数组表示(因为除了前导零之外相同的数组将表示相同的 BigInteger,因此不会有“每个大整数值”)。

编辑添加:当然,值 0 可以用长度为 0 的数组表示,从而确保不违反“最重要的 int 不能为零”的要求。

于 2013-03-12T14:19:13.560 回答