使用BigInteger处理大二进制数

ZDNet软件频道 时间:2003-04-24 作者:翻译:Java研究组织-arthurx |  我要评论()
本文关键词:javatips
BigInteger类型备用来处理大整数。它有几个构造方法,但最直接的一个是用一个java.lang.String类型的对象代表开发者要处理的数字。
本文译自Builder.com,未经许可请勿转载在程序中,位逻辑通常需要将一个二进制数进行左移或者右移,并且通常还需要在其上进行位运算以确定那些位的值被设置了。如果开发人员仅仅需要处理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类中,还有其他的构造方法和快捷高效的方法使开发者处理大数变得更容易。



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134