BigInteger

java.math包下的

eb49c58f5c476199c60c5560456cbb65_MD5

第二个传入的String如果不是整数,那么就会抛出异常 使用:

a1aac52efee6b7328043940e40d8d778_MD5

第三个几乎不少用.radix参数是2,那么就返回二进制的.

3cf13453f3ac13320bc900afa1a77d79_MD5

如果写的是BigInteger(“123”,2);呢?会抛出异常.把一个long转换成BigInteger.

ff2b85ff34d7f0b8733078d9de72d375_MD5

在内部对常见的数字-16~16进行了优化.内部提前创建了这些数的BigInteger对象,如果多次获取不会创建新的. (ps:实现上,其实是BigInteger类有一个静态代码块,提前创建好了这些对象.)

39c93e05e62a6ce6820bb72411a6229d_MD5

因此,如果这样比较的小的数需要用valueOf(注意,这是静态方法)如何相加?

4d48c2d54d6948597d23197a37cfe8c2_MD5


存储原理:


7dd3ee94e9e65e63d1c899795895aed3_MD5

会存储符号位(-1为负数 0 为0 1为int) mag数组存储了各个位数.


mag数组存的都存的是补码.从高位到低位,按4字节分组,从高位的组到地位的组存储.