在程序中,位逻辑通常需要将一个二进制数进行左移或者右移,并且通常还需要在其上进行位运算以确定那些位的值被设置了。假如开发人员仅仅需要处理64位以下的二进制数,他们只需要使用long或者int类型。
假如开发者需要处理超过64位的二进制数,那么他们将需要使用Java.math.BigInteger类。(BigInteger是JDK 1.1以后核心API的一个组成部分。)
BigInteger类型备用来处理大整数。它有几个构造方法,但最直接的一个是用一个java.lang.String类型的对象代表开发者要处理的数字。例如:
BigInteger bi = new BigInteger
("FFFFFFFFFFFFFFF", 16);
在上面的代码中,BigInteger的实例被一个以String和integer类型作为参数的BigInteger构造方法创建,其中integer类型的值用来代表数字的基数。
一旦创建了实例,就可以在其上进行JDK提供的操作。和java.lang.String类型一样,BigInteger类也是不变的,所以任何在实例上进行的操作都将返回一个新的实例,这个实例的值是操作的结果。
在BigInteger类中有所有的基本算术运算方法,如加、减、乘、除,以及可能会用到的位运算如或、异或、非、左移、右移等。下面是一些方法的例子:
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类中,还有其他的构造方法和快捷高效的方法使开发者处理大数变得更轻易。