Java中BigInteger类的使用方法详解(全网最新)

Java中BigInteger类的使用方法详解

简介

在 Java 中对于 数值类型 的定义都是有范围的,而当我们需要用到超出这个范围的大整数时,就需要 BigInteger 类了。BigInteger 类属于 java.math 包,可以让我们处理任意长度的整数。

基本使用

1. 创建 BigInteger 对象

我们可以直接使用不同的构造函数或者将字符串传递给 BigInteger 的静态方法,从而创建 BigInteger 对象。代码示例如下:

import java.math.BigInteger;

public class Test {
    public static void main(String[] args) {
        // create a BigInteger object using a long value
        BigInteger bint = new BigInteger("1000000000000000000000000000000000000000000000000");

        // create a BigInteger object using BigInteger.valueOf method
        BigInteger bint2 = BigInteger.valueOf(1234567890);
    }
}

2. 进行计算

我们可以像普通的数值类型一样进行加、减、乘、除以及取余等操作。代码示例如下:

import java.math.BigInteger;

public class Test {
    public static void main(String[] args) {
        BigInteger a = new BigInteger("123456789");
        BigInteger b = new BigInteger("987654321");

        BigInteger c = a.add(b);  // addition
        BigInteger d = a.subtract(b);  // subtraction
        BigInteger e = a.multiply(b);  // multiplication
        BigInteger f = a.divide(b);  // division
        BigInteger g = a.remainder(b);  // remainder
        BigInteger h = a.pow(2);  // power

        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);
        System.out.println(h);
    }
}

3. 直接操作 BigInteger 对象

与普通的数值类型不同,BigInteger 对象是不可变的,不能直接修改对象的值。相反,在执行除法或者取余运算时,更改 BigInteger 对象的值会生成一个新的 BigInteger 对象。因此,在进行运算时,我们需要将 BigInteger 对象赋值给一个新的变量。代码示例如下:

import java.math.BigInteger;

public class Test {
    public static void main(String[] args) {
        BigInteger a = new BigInteger("123456789");
        BigInteger b = new BigInteger("987654321");
        BigInteger c = new BigInteger("1000000000000000000000000000000000000000000000000");

        BigInteger d = a.add(b);  // d = a + b
        BigInteger e = c.subtract(a);  // e = c - a
        BigInteger f = b.multiply(a);  // f = b * a
        BigInteger g = c.divide(b);  // g = c / b
        BigInteger h = a.negate();  // h = -a
        BigInteger i = c.abs();  // i = |c|
        BigInteger j = b.mod(a);  // j = b % a

        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);
        System.out.println(h);
        System.out.println(i);
        System.out.println(j);
    }
}

示例说明

示例1

我们需要计算 10! ,即:10 × 9 × 8 × 7 × 6 × 5 × 4 × 3 × 2 × 1 。由于这个数很大,所以普通的整数类型无法处理,需要使用 BigInteger。代码示例如下:

import java.math.BigInteger;

public class Test {
    public static void main(String[] args) {
        BigInteger result = BigInteger.ONE;

        for (int i = 1; i <= 10; i++) {
            result = result.multiply(BigInteger.valueOf(i));
        }

        System.out.println(result);
    }
}

示例2

我们需要计算 2 的 1000 次方 ,即: 2 ^ 1000。由于这个数很大,所以普通的整数类型无法处理,需要使用 BigInteger。代码示例如下:

import java.math.BigInteger;

public class Test {
    public static void main(String[] args) {
        BigInteger num = BigInteger.valueOf(2);
        BigInteger exp = BigInteger.valueOf(1000);

        BigInteger result = num.pow(exp.intValue());

        System.out.println(result);
    }
}

结论

在 Java 中,BigInteger 类是用来处理大整数运算的最佳选择。使用 BigInteger,我们可以处理任意长度的整数,进行基本运算和高级运算,例如乘方、平方根和质数测试等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中BigInteger类的使用方法详解(全网最新) - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Java通过jersey实现客户端图片上传示例

    下面是实现“Java通过jersey实现客户端图片上传示例”的攻略。 准备工作 确保已经安装好Java开发环境和Maven。 在Maven中加入Jersey的依赖,例如: <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-serv…

    Java 2023年5月19日
    00
  • Android解析JSON格式数据的两种方式(JSONObject和Gson)

    下面是Android解析JSON格式数据的两种方式的完整攻略。 一、使用JSONObject解析JSON数据 1. 引入相关依赖 下面是需要引入的三个依赖: implementation ‘com.android.volley:volley:x.x.x’ implementation ‘org.json:json:x.x.x’ 2. 创建一个JSON请求 创…

    Java 2023年5月26日
    00
  • Jackson的用法实例分析

    Jackson的用法实例分析 本文将介绍Jackson在Java中的用法实例,包括POM文件的配置、解析JSON字符串和生成JSON字符串。 POM文件配置 为了使用Jackson,需要在项目的POM文件中添加以下依赖项: <dependency> <groupId>com.fasterxml.jackson.core</gro…

    Java 2023年5月26日
    00
  • java实现仿射密码加密解密

    Java实现仿射密码加密解密攻略 简介 仿射密码是一种古典密码,具有加解密速度快,但安全性相对较低的特点。仿射密码基于字母的置换进行加密、解密,通过线性变换实现。 在该教程中,我们将使用Java来实现仿射密码的加密与解密。下面将会详细地介绍实现过程。 实现过程 设计思路 仿射密码需要进行加密、解密的文本内容,所以我们需要设计一个界面来获取用户输入的明文或密文…

    Java 2023年5月19日
    00
  • Java+Mysql学生管理系统源码

    Java+Mysql学生管理系统源码攻略 什么是Java+Mysql学生管理系统源码? Java+Mysql学生管理系统源码是一个基于Java编写并使用Mysql作为后台数据库的学生管理系统。 该系统使用了Java Swing编写前端GUI界面,并使用Mysql作为后台数据库,实现了登录、菜单、学生信息管理、成绩管理、教师信息管理等核心功能,是一款很好的Ja…

    Java 2023年5月20日
    00
  • 解决Java 结构化数据处理开源库 SPL的问题

    解决Java结构化数据处理开源库SPL的问题需要遵循以下几个步骤: 1. 安装Java 首先,你需要确保自己的系统中已经安装了Java。如果没有安装Java,可以通过以下步骤进行安装: 1.进入Java官网https://www.java.com/zh-CN/download/下载对应版本的Java。 2.按照官网指引完成安装即可。 2. 安装SPL 接下来…

    Java 2023年5月26日
    00
  • JavaScript处理解析JSON数据过程详解

    下面是“JavaScript处理解析JSON数据过程详解”的完整攻略。 什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输。它是纯文本的,可读性较好,易于编写和解析,同时支持多种编程语言。 JSON由于其简洁性、标准化、易读性和跨平台性等优点越来越受到广泛的关注和应用。并且许多现代…

    Java 2023年5月26日
    00
  • js 通过html()及text()方法获取并设置p标签的显示值

    获取并设置<p>标签的显示值有两种主要方法,分别是html()和text()方法。 使用html()方法获取并设置 标签的显示值获取 标签的内容html()方法可以获取指定元素(如<p>标签)的内容。以下是几种常见的用法: // 获取<p>标签的内容 let content = $(‘p’).html(); console…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部