java BigInteger的基本使用

news2024/12/22 23:21:38

BigInteger

在这里插入图片描述
注意对象一旦创建,内部记录的值不能发生改变



import java.math.BigInteger;
import java.util.Random;

public class myBigInteger {
    public static void main(String[] args) {

        //获取一个随机的大整数
        BigInteger bigInteger=new BigInteger(4,new Random());
        System.out.println(bigInteger);//随机的范围是0到2的4次方-1
        //所以这个范围在0到15


        //获取一个随机的大整数  必须是整数
        BigInteger bigInteger1=new BigInteger("111");
        System.out.println(bigInteger1);//打印结果为111


        //获取指定进制的大整数

        BigInteger bigInteger2=new BigInteger("100",10);
        //表示获取10进制的100 打印结果为100
        //BigInteger bigInteger3=new BigInteger("123",2);
        //System.out.println(bigInteger3);
        //打印结果报错  因为 2进制只有0和1



        //静态方法获取BigInteger的对象 内部有优化
        BigInteger bigInteger4=BigInteger.valueOf(100);
        System.out.println(bigInteger4);//打印结果为100
        //但是他有一个缺点就是他的最大值是long的取值范围 超过long的就会报错
        System.out.println(Long.MAX_VALUE);//获取long的最大值9223372036854775807
       // BigInteger bigInteger5=BigInteger.valueOf(9223372036854775807);//这个会报错是因为默认是int型的末尾加个L就可以了
        BigInteger bigInteger6=BigInteger.valueOf(9223372036854775807L);//这个会报错是因为默认是int型的末尾加个L就可以了
//这个可以正常打印但是超过范围就不行了
        //BigInteger bigInteger7=BigInteger.valueOf(9223372036854775808L);//报错


        //内部有优化提起那吧-16到16先创建好了BigInteger对象 如果多次获取就不会创建新的
        BigInteger bigInteger7=BigInteger.valueOf(16);
        BigInteger bigInteger8=BigInteger.valueOf(16);
        System.out.println(bigInteger7==bigInteger8);//true

    }

小结

在这里插入图片描述

BigInteger常见方法

在这里插入图片描述

import java.math.BigInteger;

public class myBigInteger2 {
    public static void main(String[] args) {
        BigInteger bigInteger=BigInteger.valueOf(10);
        BigInteger bigInteger1=BigInteger.valueOf(2);


        BigInteger add = bigInteger.add(bigInteger1);
        System.out.println(add);//打印结果为12


        BigInteger[] bigIntegers = bigInteger.divideAndRemainder(bigInteger1);
        //返回是一个数组 因为他要返回商和余数   a0是商  a1是余数
        System.out.println(bigIntegers[0]);//5
        System.out.println(bigIntegers[1]);//0


        boolean b = bigInteger.equals(bigInteger1);
        System.out.println(b);//比较是否相同 返会false


        BigInteger pow = bigInteger.pow(2);
        System.out.println(pow);//打结果为10的2次方  100


        BigInteger max = bigInteger.max(bigInteger1);
        System.out.println(max);//返回两个的最大值



        //转化为int型整数  超出范围数据有误
        BigInteger bigInteger3=BigInteger.valueOf(200L);
        int i = bigInteger3.intValue();
        System.out.println(i);//打印结果200


        //转化为小数
        BigInteger bigInteger2=BigInteger.valueOf(100);
        double v = bigInteger2.doubleValue();
        System.out.println(v);//打印结果100.0
    }
}

BigInteger的底层存储原理

思考:为什么BigInteger能存储比自己大的数
在这里插入图片描述

因为采用分段是存储方式,第一个是符号位,第二三是以补码表示的两个32位数

BigInteger是有存储上限的但是上限特别高几乎是无限的

在这里插入图片描述

数组的最大长度21个亿长大概

在这里插入图片描述

总结

在这里插入图片描述
注意:BigInteger.valueOf()通常用于小一点的数组 因为他的-16到16是特殊值

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

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

相关文章

3dmax怎样渲染全景图?3dmax渲染全景图的2种方法

3dmax怎样渲染全景图?今天介绍3dmax渲染全景图的3种方法 3dmax渲染全景图方法1 在 360 度渲染时,您必须采取的第一步是放置摄像机。 定位相机:选择您要使用的相机类型。 无论您希望使用哪种类型的相机(目标相机、物理相机或免费…

漏刻有时数据可视化Echarts组件开发(42)炫酷的pictorialBar象形柱图代码分析

核心代码 var data []; for (let i 0; i < 5; i) {data.push(Math.round(Math.random() * 10)); } var xData2 ["A", "B", "C", "D", "E"]; var data1 [100, 100, 100, 100, 100]; // var data2 [50, 32, 55, 65, …

WPF向Avalonia迁移(三、项目结构)

前提&#xff1a; Avalonia版本11.0.0 1.配置文件 1.1 添加配置文件 1.2 读取配置文件 添加System.Configuration.ConfigurationManager using Avalonia.Controls; using System.Configuration;namespace AvaloniaApplication7.Views {public partial class MainWindow : W…

java实验(头歌)--面向对象封装继承和多态

文章目录 第一题第二题第三题第四题第五题第六题第七题第八题 快速完成实验的方法&#xff1a; 把对应题目的主函数替换&#xff0c;其他复制粘贴。 第一题 public class TestPersonDemo {public static void main(String[] args) {/********* begin *********/// 声明并实例化…

基于双二阶广义积分器的三相锁相环(DSOGI-PLL)Simulink仿真

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

漏刻有时数据可视化Echarts组件开发(41)svg格式地图应用

1.定义SVG文件 var svg ;2.注册地图函数 Echarts.registerMap是Echarts图表库中用于注册地图的函数。它可以将第三方地图或自定义地图数据与Echarts进行集成&#xff0c;使用Echarts的API进行绘制。使用方法如下&#xff1a; echarts.registerMap(mapName, geoJson) 参数map…

vscode Vue代码script全白

原因&#xff1a;template闭合标签有换行 更改为一行之后&#xff0c;成功解决

置换环建笛卡尔树:AT_wtf22Day1B

https://atcoder.jp/contests/wtf22-day1/tasks/wtf22_day1_b?langen 置换环是用值连位 首先肯定要分成每个置换环&#xff0c;每个置换环操作次数只能是 s i z e − 1 size-1 size−1&#xff08;置换环性质&#xff09; 我们考虑置换环任意一次操作&#xff0c;会划分成…

【C++】笔试训练(四)

目录 一、选择题二、编程题1、计算糖果2、进制转换 一、选择题 1、有以下程序&#xff0c;程序运行后的输出结果是&#xff08;&#xff09; #include<iostream> #include<cstdio> using namespace std; int main() {int m 0123, n 123;printf("%o %o\n&…

VR酒店虚拟仿真情景实训教学演示

在传统的酒店管理教学过程中&#xff0c;学生往往缺乏实践操作经验&#xff0c;难以将理论知识与实际工作相结合。而VR酒店虚拟仿真情景实训教学应用可以为学生提供一个逼真的、沉浸式的酒店管理环境&#xff0c;使学生能够在模拟实践中掌握酒店管理的各项技能。 VR酒店虚拟仿真…

【漏洞复现】时空智友企业流程化管控系统 session泄露

漏洞描述 时空智友企业流程化管控系统 session 泄露 免责声明 技术文章仅供参考&#xff0c;任何个人和组织使用网络应当遵守宪法法律&#xff0c;遵守公共秩序&#xff0c;尊重社会公德&#xff0c;不得利用网络从事危害国家安全、荣誉和利益&#xff0c;未经授权请勿利用…

【通义千问】Qwen从本地加载分词器报错‘‘tokenizer class not exist‘‘

问题描述&#xff1a; 将模型文件下载到本地&#xff0c; 模型文件>https://huggingface.co/Qwen/Qwen-7B-Chat/tree/main 通过【from_pretrained】去加载本地磁盘上的分词器 YOURPATH models/Qwen-7B-Chatname Qwen/Qwen-7B-Chat tokenizer AutoTokenizer.from_pretr…

windows RPC调用过程实例详解

概述&#xff1a;windows 创建 RPC调用过程实例详解 参考文章&#xff1a;Remote procedure call (RPC)&#xff08;远程过程调用 (RPC)&#xff09; - Win32 apps | Microsoft Learn 文章目录 0x01、生成 UUID 和模版(IDL)文件0x02、添加 acf 文件0x03、编译 idl 文件0x04、客…

Unity设计模式——装饰模式

装饰模式&#xff08;Decorator&#xff09;&#xff0c;动态地给一个对象添加一些额外的职责&#xff0c;就增加功能来说&#xff0c;装饰模式比生成子类更为灵活。 Component类&#xff1a; abstract class Component : MonoBehaviour {public abstract void Operation(); …

微信小程序 movable-area 区域拖动动态组件演示

movable-area 组件在小程序中的作用是用于创建一个可移动的区域&#xff0c;可以在该区域内拖动视图或内容。这个组件常用于实现可拖动的容器或可滑动的列表等交互效果。 使用 movable-area 组件可以对其内部的 movable-view 组件进行拖动操作&#xff0c;可以通过设置不同的属…

怎么防止重要文件夹丢失?文件夹安全如何保护?

我们在使用电脑的过程中&#xff0c;会将重要数据放在文件夹中&#xff0c;那么&#xff0c;我们该怎么防止重要文件夹丢失呢&#xff1f;下面我们就一起来了解一下。 EFS加密 EFS加密可以对于NTFS卷上的文件夹进行加密&#xff0c;加密后的文件夹将只允许加密时登录系统的用户…

Bigemap 在生态环境督察工作中的应用

工具 Bigemap gis office地图软件 BIGEMAP GIS Office-全能版 Bigemap APP_卫星地图APP_高清卫星地图APP 业务背景 用户是一家科技公司&#xff0c;业务线主要是配合省生态厅环境督察应用工作&#xff0c;他们技术人员先是基于卫星遥感去发现生态环境破坏问题线索&#xff…

详解SIFT、SURF和ORB特征点检测和描述算法

文章目录 0 引言1 SIFT算法1.1 主要目的1.2 主要步骤1.3 示例代码 2 SURF算法2.1 主要目的2.2 主要步骤2.3 示例代码 3 ORB算法3.1 主要步骤3.2 代码示例 4 三者对比 0 引言 本文主要对SIFT、SURF和ORB特征点检测和描述算法进行详细的学习和比较。 ⚠️ ⚠️ ⚠️ &#xff1a…

网站为什么一定要使用SSL证书?

在现代社会&#xff0c;随着互联网的快速发展&#xff0c;越来越多的人开始使用网络来完成日常生活中的各种任务。而在这个过程中&#xff0c;网站作为网络中最重要的组成部分之一&#xff0c;也逐渐成为了人们日常生活中的不可或缺的一部分。但是&#xff0c;随着网络攻击和数…

深入分析APK文件格式

前言 最近在升级项目的 Gradle 及 AGP 版本&#xff0c;在进行APK编辑再压缩时遇到了前后压缩比不一致的问题&#xff0c;所以抽空又一总结了下 APK (ZIP) 文件格式。 无论是使用 7z 进行包体积优化&#xff0c;或是快速构建多渠道包&#xff0c;又或是V2、V3签名等都是基于 …