`
lc52520
  • 浏览: 361402 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java.math.BigInteger使用心得总结

    博客分类:
  • java
阅读更多

大数加法
参考书籍发现使用使用BigInteger可以解决这个问题。
于是查找了下JDK,然后测试几次终于写成功了!
使用心得如下:

1,BigInteger属于java.math.BigInteger,因此在每次使用前都要import 这个类。偶开始就忘记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将操作数变为相反数。
compare的详解如下:

compareTo

public int compareTo
(
BigInteger

 val)
将此 BigInteger 与指定的 BigInteger 进行比较。对于针对六个布尔比较运算符 (<, ==, >, >=, !=, <=) 中的每一个运算符的各个方法,优先提供此方法。执行这些比较的建议语句是:(x.compareTo(y) <op > 0) ,其中 <op > 是六个比较运算符之一。
指定者:
接口 Comparable <BigInteger > 中的 compareTo
参数:
val - 将此 BigInteger 与之比较的 BigInteger。
返回:
当此 BigInteger 在数值上小于、等于或大于 val 时,返回 -1,0,或 1。

分享到:
评论
3 楼 yuexiang1007 2015-07-07  
帮我解决了问题,谢谢!!!
2 楼 memoryisking 2015-01-02  
关于java.math.BigInteger讲解在这里可以看到详细的教程:http://swiftlet.net/archives/tag/java-math-biginteger,这个教程讲解的比较详细,收获不少。
1 楼 巴尾的兔兔帅 2014-03-28  
divide应该是除吧?不是减。



divide
public BigInteger divide(BigInteger val)
Returns a BigInteger whose value is (this / val).
Parameters:
val - value by which this BigInteger is to be divided.
Returns:
this / val
Throws:
ArithmeticException - if val is zero.

相关推荐

Global site tag (gtag.js) - Google Analytics