Java 大数字运算

在 java中提供了大数字的操作类,即 Java.math.BigInteger 类与 java.math.BigDecimal 类。这两个类用于高精度计算,其中BigInteger 类是针对大整数的处理,而BigDecimal 类则是针对大小数的处理类。

BigInteger

BigInteger 类型的数字范围较 Integer 类型的数字范围要大得多。BigInteger 支持任意精度的整数。

在 BigInteger 类中封装了多种操作,除了基本的加、减、乘、除操作之外,还提供了绝对值、相反数、最大公约数以及判断是否为质数等操作。

使用 BigInteger 类,可以实例化一个 BigInteger 对象,彬自动调用相应的构造函数。BigInteger 类具有很多构造函数,但最直接的一种是参数以字符串形式代表要处理的数字。

public BigInteger(String val);

val 是十进制数字符串

BigInteger twoInstance = new BigInteger("2");

下面列举了 BigInteger 类中常用的几种运算方法

public BigInteger add(BigInteger val);//做加法运算
public BigInteger subftract(BigInteger val);//做减法运算
public BigInteger multiply(BigInteger val);//做乘法运算
public BigInteger divide(BigInteger val);//做除法运算
public BigInteger remainder(BigInteger val);//做取余运算
public BigInteger[] divideAndReainder(BigInteger val);//用数组返回余数和商,结果数组中第一个值为商,第二个值为余数
public BigInteger pow(int exponent);//取参数的 exponent 次方操作
public BigInteger negate();//取相反数
public BigInteger shiftLeft(int n);//将数字左移 n 位,如果 n 为负数,做右移操作
public BigInteger shiftRight(int n);//将数字右移 n 位,如果 n 为负数,做左移操作
public BigInteger and(BigInteger val);//与操作
public BigInteger or(BigInteger val);//或操作
public int compareTo(BigInteger val);//数字比较操作
public boolean equals(Object x);//当参数x是BigInteger类型的珠子并且数值相等时,返回true
public BigInteger min(BigInteger val);//返回较小的数字
public BigInteger max(BigInteger val);//返回较大的数字

例子:实现大数的各种运算操作

import java.math.BigInteger;

public class BigIntegerDemo{
    public static void main(String[] args){
        BigInteger bigInstance = new BigInteger("4");、、实例化一个大数字
        //取该大数字 加 2 的操作
        System.out.println("加法操作:"+bigInstance.add(new BigInteger("2")));
         //取该大数字 减 2 的操作
        System.out.println("减法操作:"+bigInstance.subtract(new BigInteger("2")));
         //取该大数字 乘 2 的操作
        System.out.println("乘法操作:"+bigInstance.multiply(new BigInteger("2")));
         //取该大数字 除 2 的操作
        System.out.println("除法操作:"+bigInstance.divide(new BigInteger("2")));
         //取该大数字 除以 3 的商
        System.out.println("取商:"+bigInstance.divideAndReainder(new BigInteger("2"))[0]);
          //取该大数字 除以 3 的余数
        System.out.println("取商:"+bigInstance.divideAndReainder(new BigInteger("2"))[1]);
         //取该大数字的 2 次方
        System.out.println("做 2 次方的操作:"+bigInstance.pow(2));
         //取该大数字的
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值