Java之BigInteger的用法

Java之BigInteger用法

BigInteger在Java中用于操作大整数,当一个数超过了Long表示的最大范围时就可以考虑使用BigInteger来操作。

BigInteger的使用方法很多,也可以用于进制转换的一些操作,本文记录了一些BigInteger的常用方法。


一、常用方法

方法名作用
add();相加
subtract();相减
multipy();相乘
divide();相除
remainder();取余
pow();n次方
abs();绝对值
negate();相反数
gcd();最大公约数
mod();相当于remainder
min();两者中的最小值
max();两者中的最大值
and();按位与
andNot();按位与非
not();当前大数的非
or();按位或
xor();按位异或
shiftLeft();当前大数左移n位
shiftRight();当前大数右移n位
bitLength();当前大数的二进制位数
compareTo();大数比较大小
		BigInteger number1 = new BigInteger("4324234132412");
        BigInteger number2 = new BigInteger("54323423423432");
        BigInteger result;
        number1 = number1.add(number2);
        number2 = number2.subtract(number1);
        number2 = number1.multiply(number2);
        number2 = number1.divide(number2);
        number2 = number2.remainder(number1);
        number2 = number2.pow(10);
        number2 = number2.remainder(number1);
        number2 = number2.gcd(number1);
        result = number2.min(number1);
        result = number2.and(number1);
        result = number2.or(number1);
        result = number2.andNot(number1);
        result = number2.not();
        result = number2.xor(number1);
        result = number2.shiftLeft(10);
        result = number2.shiftRight(6);
        BigInteger number3 = new BigInteger("10");
        System.out.println(number3.bitLength());
        System.out.println(number2);
        if (number1.compareTo(number2) > 0) {
            System.out.println("a > b");
        } else if (number1.compareTo(number2) < 0) {
            System.out.println("a < b");
        } else {
            System.out.println("a = b");
        }

二、进制转换

利用BigInteger的构造函数可以实现任意进制的转换。

		// 十进制转二进制
		String str1 = new BigInteger("100", 10).toString(2);
        System.out.println(str1);
		// 二进制转十进制
        String str2 = new BigInteger("1010101010111", 2).toString(10);
        System.out.println(str2);
		// 十六进制转八进制
        String str3 = new BigInteger("7E6A", 16).toString(8);
        System.out.println(str3);
  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值