ACM中Java BigNumber、BigDecimal类的应用

         一、运用Java BigNumber、BigDecimal类做大数运算,就是爽!

              下面总结一些java BigNumber、BigDecimal类的知识点。

         1.  java.math.BigInteger 类提供操作类似所有Java的基本整数运算符和java.lang.Math中的所有相关的方法。

它还提供了模运算,GCD计算,素性测试,素数生成,位操作,和一些其他杂项业务操作。所有的操作行为,如果BigInteger的二进制补码委托表示法。

算术运算和按位逻辑运算的语义分别类似于那些Java的整数算术运算符和Java的按位整数运算符。移位操作的语义扩展那些Java的移位运算符的允许负移的距离。

比较操作执行有符号整数的比较。提供模块化的算术运算来计算残留,执行幂运算和计算乘法逆。位运算操作对他们的操作数的二进制补码表示的单个位。

在这个类将抛出NullPointerException,在所有方法和构造函数使用时,通过输入任何参数提供一个空的对象引用。

类声明

以下是java.math.BigInteger类的声明:

public class BigInteger
    extends Number
        implements Comparable<BigInteger>

字段域

以下是java.math.BigInteger类中的字段:

  • static BigInteger ONE -- BigInteger的常量1。

  • static BigInteger TEN -- BigInteger的常量10。

  • static BigInteger ZERO -- BigInteger的常量0。

 常用类方法:
    1、BigInteger add(BigInteger val)
    此方法返回一个BigInteger,其值是(this + val).
   2、 int compareTo(BigInteger val)
   此方法比较此BigInteger与指定的BigInteger。
   3、BigInteger divide(BigInteger val)
   此方法返回一个BigInteger,其值是 (this / val).
   4、BigInteger multiply(BigInteger val)
  此方法返回一个BigInteger,其值是 (this * val).
  此方法返回一个BigInteger,其值是(thisexponent).


2、java.math.BigDecimal 类提供用于算术,刻度操作,舍入,比较,哈希算法和格式转换操作。

toString()方法提供BigDecimal的规范表示。它使用户可以完全控制舍入行为。

提供用于操作BigDecimal规模两种类型的操作:
  • 缩放/舍入操作
  • 小数点移动操作。

此类及其迭代器实现Comparable接口的所有可选方法。

类声明

以下是声明java.math.BigDecimal类:

public class BigDecimal
    extends Number
        implements Comparable<BigDecimal>

字段域

以下是java.math.BigDecimal类中的字段:

  • static BigDecimal ONE -- 值为1,使用刻度为0。

  • static int ROUND_CEILING -- 舍入模式舍向正无穷。

  • static int ROUND_DOWN -- 舍入模式为向零舍入。

  • static int ROUND_FLOOR -- 舍入模式接近负无穷大。

  • static int ROUND_HALF_DOWN -- 舍入模式舍入到“最近相邻”如果与两个相邻数字的距离相等,在这种情况下,向下取整。

  • static int ROUND_HALF_EVEN --  舍入模式舍对“近邻”如果与两个相邻数字的距离相等,在这种情况下,舍入向着更加相邻。

  • static int ROUND_HALF_UP -- 舍入模式舍入到“最近相邻”如果与两个相邻数字的距离相等,在这种情况下范围。

  • static int ROUND_UNNECESSARY -- 舍入模式断言请求的操作具有精确的结果,因此不需要舍入。

  • static int ROUND_UP -- 舍入模式舍入去零。

  • static BigDecimal TEN -- 值为0,使用刻度为0。

  • static BigDecimal ZERO -- 值为0,使用刻度为0。

 

 *具体应用题目HDU1063(高精度幂)  1042(大数阶乘) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值