1. 程式人生 > >JAVA中的BigInteger與BigDecimal類功能強大

JAVA中的BigInteger與BigDecimal類功能強大

取余 並且 log 加減乘除 value java 構造函數 () eof

BigInteger類是java為了處理大數字二專門制作的類,可以處理很大的數字(理論上無限大),並且可以實現大數字的類似於int所有數學運算。對算法題來說,再也不怕出現超出int範圍的運算了!

同時,處理大浮點數的類是BigDecimal

BigInteger主要能實現以下功能:

大整數的直接讀取

大整數加減乘除,求余

求冪,絕對值,求相反數

判斷是否相等,求兩數的最大值,最小值

求公約數(厲害!)

求某數轉成二進數後的位數

判斷某個數是否為素數(可能判錯)

獲取某個數的下一個可能的素數

使用時要引入包為:import java.math.BigInteger

Ⅰ 基本函數:

1.valueOf(parament); 將參數轉換為制定的類型

比如 int a = 3;

BigInteger b = BigInteger.valueOf(a);

則b=3;

String s= "12345";

BigInteger c = BigInteger.valueOf(s);

則c = 12345;

2.add(); 大整數相加

BigInteger a=new BigInteger(“23”);

BigInteger b=new BigInteger(“34”);

a.add(b);

3.subtract(); 相減

4.multiply(); 相乘

5.divide(); 相除取整

6.remainder(); 取余

7.pow(); a.pow(b)=a^b

8.gcd(); 最大公約數

9.abs(); 絕對值

10.negate(); 取反數

11.mod(); a.mod(b)=a%b=a.remainder(b);

12.max(); min();

13.public int comareTo();

14.boolean equals(); 是否相等

15.shiftLeft():左移,this << n ,this*2^n;

shiftRight():右移,this >> n,this/2^n;

16.bitLength:返回該數的最小二進制補碼表示的位的個數,即 *不包括* 符號位 (ceil(log2(this <0 ? -this : this + 1)))。對正數來說,這等價於普通二進制表示的位的個數。

17.bitCount:返回該數的二進制補碼表示中不包擴符號位在內的位的個數。該方法在 BigIntegers 之上實現位向量風格的集合時很有用。

18.isProbablePrime:如果該 BigInteger 可能是素數,則返回 true ;如果它很明確是一個合數,則返回 false 。 參數 certainty 是對調用者願意忍受的不確定性的度量:如果該數是素數的概率超過了 1 - 1/2**certainty方法,則該方法返回 true 。執行時間正比於參數確定性的值。

19.nextProbablePrime():獲取下一個可能的素數是多少

20.BigInteger構造函數:

一般用到以下兩種:

BigInteger(String val);

將指定字符串轉換為十進制表示形式;

BigInteger(String val,int radix);

將指定基數的 BigInteger 的字符串表示形式轉換為 BigInteger

JAVA中的BigInteger與BigDecimal類功能強大