關於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();
}
}