Java: BigInteger基础使用

1、如果BigInteger中的数值没有超过long,用valueof

2、BigInteger中的数值超出了long,用构造方法表示

3、对象一旦创建,BigInteger内部中的值不能发生改变

4、只要计算都会产生一个新的BigInteger对象。

package demo2;

import java.math.BigInteger;
import java.util.Random;

public class BigInterDemo1 {
    public static void main(String[] args) {
//        public BigInteger(int num, Random rnd)          获取随机大整数,范围:[0 ~ 2 的num次方-1]
//        public BigInteger(String val)           获取指定的大整数
//        public BigInteger(String val, int radix)        获取指定进制的大整数


//        public static BigInteger valueOf(long val)      静态方法获取BigInteger的对象,内部有优化

//        1、获取一个随机的大整数
        Random r = new Random();
        BigInteger bd1 = new BigInteger(4,r);
        System.out.println(bd1); //[0 ~ 2^4 - 1]

//        2.获取一个指定的大整数
//        字符串中必须是整数,否则报错
        BigInteger bd2 = new BigInteger("9999999999999999999");
        System.out.println(bd2); // 999999999999999999999

//        3.获取指定进制的大整数
        BigInteger bd3 = new BigInteger("100", 10);
        System.out.println(bd3); // 100


//        4.静态方法获取BigInteger的对象,内部有优化
//        细节:
//        1、表示范围比较小,在long的取值范围之内,超出long的范围就不行了
//        2、在内部对常用的数字: -16 ~ 16 进行了优化
//        提前把 -16 ~ 16 先创建好BigInteger的对象,如果多次获取就不会重新创建新的
        BigInteger bd5 = BigInteger.valueOf(100);
        System.out.println(bd5);

        System.out.println(Long.MAX_VALUE); // 9223372036854775807


    }
}
package demo2;

import java.math.BigInteger;

public class BigIntergerDemo2 {
    public static void main(String[] args) {

        BigInteger bd1 = BigInteger.valueOf(10);
        BigInteger bd2 = BigInteger.valueOf(5);

//        加法
        BigInteger bd3 = bd1.add(bd2);
        System.out.println(bd3);

//        除法,获得商和余数
        BigInteger[] arr = bd1.divideAndRemainder(bd2);

        System.out.println(arr.length);
        System.out.println(arr[0]);
        System.out.println(arr[1]);

//        比较是否相同
        boolean result = bd1.equals(bd2);
        System.out.println(result); // false

//        次幂
        BigInteger bd4 = bd1.pow(2);
        System.out.println(bd4);

//        最大/最小
        BigInteger bd5 = bd1.max(bd2);
        System.out.println(bd5); // 10

        System.out.println(bd5 == bd1); //true
        System.out.println(bd5 == bd2); //false

        

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值