【发布时间】:2019-09-08 04:52:19
【问题描述】:
Java 中的 BigInteger 将数字存储为“无符号整数”数组(它是整数数组,但它们将信息存储在 32 位系统中,然后将其转换为 long 并进行操作)。
它们如何从十进制系统转换为基本的 32 位系统?算法是什么?
我正在阅读资源,但我不明白。我看到他们将数字拆分为 10 位字符串(整数可以处理 1_000_000_000),但接下来呢? 除以 2?还是 2^32 (4294967296)?
感谢您帮助理解它。
【问题讨论】:
-
谁说他们以 32 位存储这些信息?
-
convert from decimal system to base 32-bit您是在问如何将基数为 10 的数字转换为基数为 2(二进制)的数字?或者关于浮点表示?问题有点不清楚你在问什么 -
我在问如何将 String 转换为 BigInteger 内部表示(base 32-bit)
-
BigInteger(或任何地方)中没有“基本 32 位”。内部数字由位表示,BigInteger 只是使用一个 int 数组在需要时向我们的“数字”添加更多位
-
我同意有一个表示位的整数数组,但后来它们对整个整数进行运算(转换为长整数),因此它们使用基本的 32 位系统。无论如何,他们如何将 String 转换为这么大的位数组???
标签: java algorithm performance biginteger