在程序中,位邏輯通常需要將一個二進(jìn)制數(shù)進(jìn)行左移或者右移,并且通常還需要在其上進(jìn)行位運算以確定那些位的值被設(shè)置了。假如開發(fā)人員僅僅需要處理64位以下的二進(jìn)制數(shù),他們只需要使用long或者int類型。
假如開發(fā)者需要處理超過64位的二進(jìn)制數(shù),那么他們將需要使用java.math.BigInteger類。(BigInteger是JDK 1.1以后核心API的一個組成部分。)
BigInteger類型備用來處理大整數(shù)。它有幾個構(gòu)造方法,但最直接的一個是用一個java.lang.String類型的對象代表開發(fā)者要處理的數(shù)字。例如:
BigInteger bi = new BigInteger
("FFFFFFFFFFFFFFF", 16);
在上面的代碼中,BigInteger的實例被一個以String和integer類型作為參數(shù)的BigInteger構(gòu)造方法創(chuàng)建,其中integer類型的值用來代表數(shù)字的基數(shù)。
一旦創(chuàng)建了實例,就可以在其上進(jìn)行JDK提供的操作。和java.lang.String類型一樣,BigInteger類也是不變的,所以任何在實例上進(jìn)行的操作都將返回一個新的實例,這個實例的值是操作的結(jié)果。
在BigInteger類中有所有的基本算術(shù)運算方法,如加、減、乘、除,以及可能會用到的位運算如或、異或、非、左移、右移等。下面是一些方法的例子:
BigInteger result = bi.multiply(new BigInteger("2"));
System.out.PRintln(result);
result = bi.divide(new BigInteger("2"));
System.out.println(result);
result = bi.add(new BigInteger("232"));
System.out.println(result);
result = bi.suBTract(new BigInteger("23122"));
System.out.println(result);
result = bi.shiftRight(10);
System.out.println(result);
在BigInteger類中,還有其他的構(gòu)造方法和快捷高效的方法使開發(fā)者處理大數(shù)變得更輕易。
新聞熱點
疑難解答