黑马程序员技术交流社区

标题: java.math.BigInteger类 [打印本页]

作者: 庄承荣    时间: 2011-11-4 16:17
标题: java.math.BigInteger类
请问有谁研究过java.math.BigInteger类的源码吗?能详细解释一下其中的设计思想吗?
作者: 肖瑞军    时间: 2011-11-4 23:50
1,BigInteger属于java.math.BigInteger,因此在每次使用前都要import 这个类。
2,其构造方法有很多,但现在偶用到的有: BigInteger(String val)
          将 BigInteger 的十进制字符串表示形式转换为 BigInteger。
BigInteger(String val, int radix)
          将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger。
如要将int型的2转换为BigInteger型,要写为BigInteger two=new BigInteger("2"); //注意2双引号不能省略

3,BigInteger类模拟了所有的int型数学操作,如add()==“+”,divide()==“-”等,但注意其内容进行数学运算时不能直接使用数学运算符进行运算,必须使用其内部方法。而且其操作数也必须为BigInteger型。
如:two.add(2)就是一种错误的操作,因为2没有变为BigInteger型。

4,当要把计算结果输出时应该使用.toString方法将其转换为10进制的字符串,详细说明如下:
String toString()
          返回此 BigInteger 的十进制字符串表示形式。
输出方法:System.out.print(two.toString());

5,另外说明三个个用到的函数。     BigInteger remainder(BigInteger val)
          返回其值为 (this % val) 的 BigInteger。
BigInteger negate()
          返回其值是 (-this) 的 BigInteger。
int        compareTo(BigInteger val)
          将此 BigInteger 与指定的 BigInteger 进行比较。
remainder用来求余数。
negate将操作数变为相反数。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2