关于java中的BigInteger

news2024/12/28 23:11:26

文章目录

  • 关于BigInteger类
  • BigInteger的构造方法
  • BigInteger方法使用示例
    • 算术运算API
    • 转换为基本数据类型的方法
  • 小结

关于BigInteger类

BigInteger类是用于解决整型类型(含基本数据类型及对应的包装类)无法表示特别大的数组及运算问题。

  • 即使是占用字节数最多的整型long,能表示的范围也是有限的,为-9223372036854775808 ~ 9223372036854775807。以上数字的长度为19位
  • 理论上,你可以使用BigInteger表示任意整数
    • 它肯定支持 -2的Integer.MAX_VALUE次方 至 2的Integer.MAX_VALUE次方,甚至更大的范围
    • Integer.MAX_VALUE :2147483647

官方文档解释“:
BigInteger must support values in the range -2^Integer.MAX VA (exclusive) to +2^Integer.max VAUB(exclusive) and may support values outside of that range.

BigInteger的构造方法

在这里插入图片描述
红色方框里的意思表示,可以传入字符串。
所以当有特别大的数字时可以用字符串表示一个很长的数,用这个方法可以吧字符串转为数字

BigInteger方法使用示例

  • 不可以使用运算符号处理BigInteger的运算
    • 本质上通过BigInteger类创建出来的是一个个对象,而不是数字
  • 你必须通过BigInteger提供的APi实现你所需要的运算
public class BigInteger {
    public static void main(String[] args) {
        //随便来设置一个很大的数,
        String value1 = "777777777776666666665555555555444444444333333333222222222111111111";
        String value2 = "111111111112222222223333333333444444444555555555666666666777777777";

        java.math.BigInteger number1 = new java.math.BigInteger(value1);
        java.math.BigInteger number2 = new java.math.BigInteger(value2);
        System.out.println("1转换后:"+number1);
        System.out.println("2转换后:"+number2);

        java.math.BigInteger result;
        result = number1.add(number2);//加法运算
        System.out.println(result);

        result = number1.subtract(number2);//减法运算
        System.out.println(result);

        result = number1.multiply(number2);//乘法
        System.out.println(result);

        result = number1.divide(number2);//除法运算
        System.out.println(result);
    }
}

算术运算API

在这里插入图片描述
idea里查看BigInteger的API方法。
在这里插入图片描述

转换为基本数据类型的方法

在这里插入图片描述

小结

  • 使用Biglnteger可以表示非常大的整数;
  • Biglnteger的构造方法重载了好几次,推荐使用String作为参数的那个
  • 当需要进行算术运算时,必须使用Biglnteger提供的API
  • Biginteger的API几乎包括了你所能想到的所有数值操作:
  • 你可以将Biglnteger转换成任何基本数据类型,但可能丢失精度。
    • 在转换之前,应先明确是否可能丢失精度
    • 你不一定需要将结果转换为数值型,使用字符串也可以用于显示或存储

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/192783.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTB_Weak RSA

文章目录信息收集RSA 算法题目解密信息收集 下载,解压 (密码都是hackthebox) enc后缀的文件是一种加密文件,打开为乱码,key.pub内容如下,是 RSA 加密算法的公钥 -----BEGIN PUBLIC KEY----- MIIBHzANBgkqhkiG9w0BAQEFAAOCAQwAMI…

CISP信息安全认证考试都考什么?

CISP考试是目前热门的信息安全认证考试,很多刚刚开始了解CISP的朋友,比较关心关于CISP考试内容的相关问题,今天就由中培小编带大家一起去看看CISP认证考试究竟都考哪些内容?首先来看一下试卷结构考试时间:120分钟考试题…

CSS图标与链接

目录 如何添加图标 Font Awesome 图标 实例 Bootstrap 图标 实例 Google 图标 实例 为图标添加样式或颜色 设置链接样式 实例 实例 文本装饰 实例 背景色 实例 链接按钮 实例 更多实例 如何添加图标 向 HTML 页面添加图标的最简单方法是使用图标库&#xff0…

【Less】全局样式重复注入问题

// package.json {"less": "^4.1.3","vite": "^3.1.0", }参考: [less/sass]如何避免因公共模块导致生成重复css代码解决 Vue CSS 样式重复载入,为 Vue 添加全局 less 或 sass 基础样式库【不是本篇解决方法&am…

vue3学习笔记之router(router4 + ts)

文章目录Vue Router1. 基本使用router-view2. 路由跳转2.1 router-link2.2 编程式导航2.3 replace3. 路由传参4. 嵌套路由5. 命令视图6. 重定向和别名6.1 重定向6.2 别名7. 路由守卫7.1 全局前置守卫7.2 全局后置守卫案例:加载滚动条8. 路由元信息9. 路由过渡动效10…

瞧不上alert 老古董?使用alert实现一个精美的弹窗

曾几何时alert陪伴了我很多歌日日夜夜,但现在人们越来越追求高端的技术,其实慢慢的我也都快淡忘了前端的世界里还有alert这么一个伟大的成员。 目录 一、为什么抛弃了alert? 1. 不同浏览器的表现 2. 第三方组件的使用 3. 代码意识的控制 二、用al…

2023年浏览器哪个好用速度快,看这一篇就够了

在网络覆盖的社会,不管走到哪里,都能上网浏览新闻、看热点资讯。浏览器是用户上网浏览的必要软件之一,它决定这用户浏览网页的速度和习惯。那么,2023年什么浏览器好用稳定速度快?目前优秀的浏览器有很多,但…

HDFS常用命令汇总

HDFS常用命令汇总一、前言信息二、帮助信息查看1、查看帮助信息2、帮助文档(附带命令的详细说明)三、常用命令1、创建目录2、查看目录下的内容3、上传文件4、上传并删除源文件5、查看文件内容6、查看文件开头内容7、查看文件末尾内容8、下载文件9、合并下…

ceph中报错“ clock skew detected on mon.ceph2, mon.ceph3”

自己搭建的ceph集群,显示时间不同步:clock skew detected on mon.ceph2, mon.ceph3但是查看chrony进程已经启动,ceph配置文件中,如下参数也已经配置,查看chrony.conf配置文件发现,同步源没有修改过,默认的于是修改ceph…

面试官的几句话,差点让我挂在HTTPS上

面试官的几句话,差点让我挂在HTTPS上 目录:导读 一、HTTP 协议 二、HTTPS 协议 三、使用 HTTP 协议还是 HTTPS 协议呢? 四、HTTP 协议和 HTTPS 协议的区别 作为软件测试,大家都知道一些常用的网络协议是我们必须要了解和掌握…

MySQL jdbc 反序列化分析

0x01 前言听师傅们说这条链子用的比较广泛,所以最近学一学,本来是想配合着 tabby 或是 codeql 一起看的,但是 tabby 的环境搭建一直有问题,耽误了很久时间,所以就直接看了0x02 JDBC 的基础• 本来不太想写这点基础的&a…

敏捷与DevOps的区别,知异同,发准力

​图片来自Robert Martin《敏捷整洁之道》。敏捷DevOps生命之环,由内到外,第一圈:Kent Beck,第二圈:Uncle Bob,第三圈:Mike Cohn。三圈由内到外分别是:编程、工程(大致对…

STM32读取24位模数转换(24bit ADC)芯片TM7711数据

STM32读取24位模数转换(24bit ADC)芯片TM7711数据 TM7711是一款国产低成本24位ADC芯片,常用于与称重传感器配合实现体重计的应用。这里介绍STM32读取TM7711的电路和代码实现。TM7711与HX710A是兼容的芯片,而与HX711在功能上有所不…

B+树的概念

与分块查找和B树类似。 一棵m阶的B树需满足如下条件: 每个分支结点最多有m棵子树非叶子结点的根结点至少有两棵子树,其他结点至少有⌈m/2⌉\lceil m/2\rceil⌈m/2⌉棵子树结点的子树个数与关键字个数相等关键字全部存储在叶子结点中。所有指向对应记录的指针也存储…

LeetCode刷题---链表经典问题(双指针)

文章目录一、编程题:206. 反转链表(双指针-头插法)解题思路1.思路2.复杂度分析:3.算法图解代码实现二、编程题:203. 移除链表元素解题思路1.思路2.复杂度分析:3.算法图解代码实现三、编程题:328…

嵌入式开发:为什么物联网正在吞噬嵌入式操作系统?

在过去几年的嵌入式开发中,独立嵌入式软件市场的两大基石已被物联网公司完全吞噬。第一个FreeRTOS被亚马逊吞并,以支持其亚马逊Web服务(AWS)云平台的物联网开发,Express Logic被微软吞并,用于其竞争对手Azure云服务。许多分析师对…

【图像处理OpenCV(C++版)】——4.4 对比度增强之伽马变换

前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快…

解析某音X-Bogus参数

文章目录写在前面目标正向梳理主要加密函数主要算法解析逆向梳理结论测试进阶写在后面写在前面 本文主要介绍从X-Bogus还原19位数组的过程,方便理解算法。 目标 // 从 var x_bogus DFSzswVVUyXANrqJSkdAml9WX7jG; // 还原出 var x_array [64, 0.00390625, 1, 2…

Dubbo 入门系列之快速部署一个微服务应用

本文将基于 Dubbo Samples 示例演示如何快速搭建并部署一个微服务应用。 背景 Dubbo 作为一款微服务框架,最重要的是向用户提供跨进程的 RPC 远程调用能力。如上图所示,Dubbo 的服务消费者(Consumer)通过一系列的工作将请求发送给…

FatFs文件系统(只针对SPI-Flash)总结

作用 当我们利用SPI操作Flash时往往读写的都是一段连续的扇区,而FatFs文件系统可以将我们要写入的数据拆分成不连续的扇区见缝插针写入,类似与链表一块扇区指向下一块扇区,不需要物理逻辑地址连续也可以读取整个文件。 这是为啥嘞&#xff…