Java中的BigInteger類(處理大數)
1. 我們有時候會遇到特別大的是數字,而且這個時候數字已經超過了Long型的最大範圍,而Java中有一個類就是用來處理很大的資料的類,為BigInteger類
2. 下面是BigInteger類常用的方法,基本上所有的操作要轉換成BigInteger物件來進行處理
具體的測試程式碼如下:
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
//加法
BigInteger add1 = new BigInteger("10");
System.out.println(add1.add(new BigInteger("20")));
//減法
BigInteger sub1 = new BigInteger("10");
System.out.println(sub1.subtract(new BigInteger("20")));
//除法
BigInteger div1 = new BigInteger("10");
System.out.println(div1.divide(new BigInteger("20")));
//乘法
BigInteger mul1 = new BigInteger("10");
System.out.println(mul1.multiply(new BigInteger("20")));
//取餘數
BigInteger remain1 = new BigInteger("10");
System.out.println(remain1.remainder(new BigInteger("8")));
//比較兩個數字的大小,小於返回-1,大於返回1,等於0的時候返回0
BigInteger comp1 = new BigInteger("10");
System.out.println(comp1.compareTo(new BigInteger("18")));
//n次冪的運算
BigInteger power1 = new BigInteger("2");
System.out.println(power1.pow(10));
//返回較小的數
BigInteger min1 = new BigInteger("2");
System.out.println(min1.min(new BigInteger("-23")));
//返回較大的數
BigInteger max1 = new BigInteger("2");
System.out.println(max1.max(new BigInteger("-23")));
//返回該型別的數字的值
BigInteger val = new BigInteger("123");
System.out.println(val.intValue());
//返回最大公約數
BigInteger gcd1 = new BigInteger("12");
System.out.println(gcd1.gcd(new BigInteger("6")));
//取反
BigInteger neg1 = new BigInteger("12");
System.out.println(neg1.negate());
//按位與
BigInteger and1 = new BigInteger("10");
System.out.println(and1.and(new BigInteger("1")));
//按位或
BigInteger or1 = new BigInteger("10");
System.out.println(or1.or(new BigInteger("10")));
//異或
BigInteger xor1 = new BigInteger("10");
System.out.println(xor1.xor(new BigInteger("10")));
//返回n進位制的字串(進位制的轉換)
BigInteger decimal1 = new BigInteger("12");
System.out.println(decimal1.toString(2));
//返回數字的絕對值
BigInteger abs1 = new BigInteger("-12");
System.out.println(abs1.abs());
//檢測某位上是否為1
BigInteger testBit1 = new BigInteger("4");
System.out.println(testBit1.testBit(2));//左移
BigInteger moveLeftBit1 = new BigInteger("4");
System.out.println(moveLeftBit1.shiftLeft(1));
//右移
BigInteger moveRightBit1 = new BigInteger("4");
System.out.println(moveRightBit1.shiftLeft(-1));
}
}