用Java的大整数类BigInteger来实现大整数的一些运算

关于BigInteger的构造函数,一般会用到两个:
BigInteger(String val); //将指定字符串转换为十进制表示形式;

BigInteger(String val,int radix); 将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger。
例如val是二进制字符串,想把它转换成十进制的BigInteger,可以这样写:

String val = "01101";
BigInteger s = new BigInteger(val, 2);

比较大小的时候要用到compareTo

import java.io.*;
import java.util.*;
import java.math.*;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		BigInteger a, b;
		while(sc.hasNext()) {
			a = sc.nextBigInteger();
			b = sc.nextBigInteger();
			System.out.println(a.add(b));	//大整数加法
			System.out.println(a.subtract(b));	//减法
			System.out.println(a.multiply(b));	//乘法
			System.out.println(a.divide(b));	//除法
			System.out.println(a.remainder(b));	//取模
			
			//大整数的比较
			if(a.compareTo(b) == 0)
				System.out.println("a == b");
			else if(a.compareTo(b) > 0)
				System.out.println("a > b");
			else if(a.compareTo(b) < 0)
				System.out.println("a < b");
			
			//大整数的绝对值
			System.out.println(a.abs());
			
			//计算大整数的幂次方
			int exp = 10;
			System.out.println(a.pow(exp));
			
			//返回大整数十进制的字符串表示
			System.out.println(a.toString());
			
			//返回大整数p进制的字符串表示
			int p = 8;
			System.out.println(a.toString(p));
		}
		sc.close();
	}
}

原文地址:https://www.cnblogs.com/KeepZ/p/11617887.html