使用BigInteger处理大二进制数

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

在程序中,位逻辑通常需要将一个二进制数进行左移或者右移,并且通常还需要在其上进行位运算以确定那些位的值被设置了。假如开发人员仅仅需要处理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类中,还有其他的构造方法和快捷高效的方法使开发者处理大数变得更轻易。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航