【Java】BigInteger用法

前言

在Java中,由于没有long long类型。如果需要使用比long类型更大的整数数据时,就可以使用BigInteger类,它支持任意精度的整数。

创建BigInteger类型数据

@Test
public void test1() {Scanner scan = new Scanner(System.in);//1.控制台读入BigInteger n1 = scan.nextBigInteger();//2.将BigInteger的十进制字符串表示形式转化为BigIntegerBigInteger n2 = new BigInteger("123");//3.将radix进制的字符串转化为十进制的BigIntegerString str = "1010011010";int radix = 2;BigInteger n3 = new BigInteger(str, radix);//666//如果直接写成如下,就会直接将1010011010看成十进制整数BigInteger n3 = new BigInteger(str);//1010011010
}

基本运算

@Test
public void test2() {BigInteger x = new BigInteger("24");BigInteger y = new BigInteger("12");int val = 5;//1.加BigInteger n1 = x.add(y);//2.减BigInteger n2 = x.subtract(y);//3.乘BigInteger n3 = x.multiply(y);//4.除BigInteger n4 = x.divide(y);//5.取模(y不能为负数)BigInteger n5 = x.mod(y);//6.求余BigInteger n6 = x.remainder(y);//7.平方(val不能为负数)BigInteger n7 = x.pow(val);//8.取绝对值BigInteger n8 = x.abs();//9.取相反数BigInteger n9 = x.negate();
}

类型转换

@Test
public void test3() {int val1 = 123;long val2 = 456;//1.int转换为BigInteger类型BigInteger n1 = new BigInteger(val1 + "");//2.long转换为BigInteger类型BigInteger n2 = new BigInteger(val2 + "");//3.BigInteger转int//method 1://PS:此方法如果此 BigInteger 的值超出 int 类型的范围,则会引发 ArithmeticException。int i1 = n1.intValueExact();//method 2://PS:如果这个 BigInteger 太大而无法放入 int 中,则只返回低阶 32 位。请注意,此转换可能会丢失有关 BigInteger 值的总体大小的信息,并返回带有相反符号的结果。int i2 = n1.intValue();//4.BigInteger转long//method 1://PS:此方法如果此 BigInteger 的值超出 long 类型的范围,则会引发 ArithmeticException。long l1 = n1.longValueExact();//method 2://PS:如果这个 BigInteger 太大而无法放入 long 中,则只返回低阶 64 位。请注意,此转换可能会丢失有关 BigInteger 值的总体大小的信息,并返回带有相反符号的结果。long l2 = n1.longValue();
}

比较大小

@Test
public void test4() {BigInteger b1 = new BigInteger("123");BigInteger b2 = new BigInteger("456");//1.compareTo():大于返回1,等于返回0,小于返回-1int n1 = b1.compareTo(b2);//2.max():返回值:BigInteger,其值为 b1 和 b2 中的较大值。如果它们相等,则可以返回任何一个。BigInteger bMax = b1.max(b2);//3.min():返回值:BigInteger,其值为 b1 和 b2 中的较小值。如果它们相等,则可以返回任何一个。BigInteger bMin = b1.min(b2);
}

常量值

PS:源码注释里面 -1 的访问权限已被修改为了private

@Test
public void test5() {
BigInteger zero = BigInteger.ZERO;//0BigInteger one = BigInteger.ONE;//1BigInteger two = BigInteger.TWO;//2BigInteger ten = BigInteger.TEN;//10
}

位运算

@Test
public void test6() {BigInteger b1 = new BigInteger("123");BigInteger b2 = new BigInteger("456");//按位与BigInteger bAnd = b1.and(b2);//按位或BigInteger bOr = b1.or(b2);//按位异或BigInteger bXor = b1.xor(b2);//按位取反BigInteger bNot = b1.not();//左移2位BigInteger bShiftLeft = b1.shiftLeft(2);//右移2位BigInteger bShiftRight = b1.shiftRight(2);
}

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

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

相关文章

leetcode做题笔记2048. 下一个更大的数值平衡数

如果整数 x 满足:对于每个数位 d ,这个数位 恰好 在 x 中出现 d 次。那么整数 x 就是一个 数值平衡数 。 给你一个整数 n ,请你返回 严格大于 n 的 最小数值平衡数 。 示例 1: 输入:n 1 输出:22 解释&a…

Linux中的SNAT与DNAT实践

Linux中的SNAT与DNAT实践 1、SNAT的介绍1.1,SNAT概述1.2,SNAT源地址转换过程1.3,SNAT转换 2、DNAT的介绍2.1,DNAT概述2.2,DNAT转换前提条件2.3,DNAT的转换 3、防火墙规则的备份和还原4、tcpdump抓包工具的运…

腾讯再推互动微短剧,游戏的风吹向了短剧

当你看剧时不再拥有上帝视角,处在女主的位置上,你又会做出什么样的选择? 腾讯最新上线的短剧《摩玉玄奇2》在原版之外还推出了互动版,就给出了这样一个新玩法。 《摩玉玄奇2》原版是普通的后宫职场微短剧,互动版则是…

虚拟机VMware安装centos以及配置网络

目录 1、CentOS7的下载2、CentOS7的配置3、CentOS7的安装4、CentOS7的网络配置 4.1、自动获取IP4.2、固定获取IP 5、XShell连接CentO 准备工作:提前下载和安装好VMware。VMware的安装可以参考这一篇文章:VMware15的下载及安装教程。 1、CentOS7的下载 …

qt 字符串操作

在 QT 中,你可以使用QString类来操作字符串。QString是一个模板类,它可以存储不同字符集的字符串,并且提供了许多用于操作字符串的方法。 以下是一些常见的操作字符串的方法: append()方法:将一个字符串附加到QString的…

从零开始搭建企业管理系统(五):统一响应结果和全局异常处理

统一响应结果和全局异常处理 前言统一响应结果定义响应结构定义响应对象定义响应状态对象统一返回响应对象定义 Controller 拦截类 全局异常处理 前言 做个功能之前我们想一下为什么要做统一响应结果和全局异常处理呢? 这是因为我们的项目采用的是前后端分离开发&am…

【C++】小项目:C++实现通讯录管理系统

文章目录 1、系统需求完整代码 1、系统需求 本文将利用C来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人显示联…

LVGL | Demo实例使用说明

LVGL | Demo实例使用说明 时间:2023年12月10日21:51:17 文章目录 LVGL | Demo实例使用说明Demos for LVGLAdd the examples to your projectsDemosWidgetsMusic playerKeypad and encoderBenchmarkStress Contributing Demos for LVGL Add the examples to your p…

基于SSM的酒店管理旅店系统(Java毕业设计)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

华为OD机试真题-密码输入检测-2023年OD统一考试(C卷)

题目描述&#xff1a; 给定用户密码输入流input&#xff0c;输入流中字符<表示退格&#xff0c;可以清除前一个输入的字符&#xff0c;请你编写程序&#xff0c;输出最终得到的密码字符&#xff0c;并判断密码是否满足如下的密码安全要求。 密码安全要求如下&#xff1a; …

【软件测试】年薪30万跟年薪15万的面试有些什么区别?

1、什么是兼容性测试&#xff1f;兼容性测试侧重哪些方面&#xff1f; 参考答案&#xff1a; 兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行&#xff0c;即是通常说的软件的可移植性。 兼容的类型&#xff0c;如果细分的话&#xff0c;有平台的兼容…

7记一次组网过程

这段时间学习了服务器、操作系统、网络相关的知识&#xff0c;后面真的进行了一次组网操作。这次把组网的过程记录下来&#xff0c;方便下次操作的时候有资料可查询。 前期准备 要组网&#xff0c;首先要做好规划&#xff0c;把前期要准备的事情提前做好&#xff0c;才能事半…

Numpy数组中数据的排序【sort(),argsort()与 lexsort()】 (第13讲)

Numpy数组中数据的排序【sort(),argsort()与 lexsort()】 (第13讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…

【C++ 程序设计入门基础】- 第3节-循环结构02

目录 while 语句 案例 while 循环 输入一个整数 n &#xff0c;输出 1~n 的所有整数。 查看运行结果&#xff1a; while 语句结构解析 do while 语句 案例 do while 循环 输入一个整数n&#xff0c;输出1&#xff5e;n的所有整数。 查看运行结果 while、do while的区别 …

AE-制作唯美星空粒子动态视频

目录 1.新建合成 2.导入一张星空图片,拖入到新建的合成中 3.新建纯色层面命名为bj

【git 相关操作】

git status - 查看当前状态 git add - 将文件添加到暂存区 git commit -m "msg" - 提交暂存区文件到本地仓库 git push origin master - 本地仓库文件推送到远程仓库 git merge - 合并分支 git clone - 从指定地址克隆项目 git log - 查看commit日志 git stash push …

SpringSecurity6 | 登录成功后的JSON处理

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…

Android:java.lang.SecurityException: Provider must not be exporte

java.lang.SecurityException: Provider must not be exporte 解决方案 首先在AndroidManifest.xml中添加provider android:authorities&#xff1a; 是用来标识provider的唯一标识&#xff0c;在同一部手机上一个"authority"串只能被一个app使用&#xff0c;冲突的话…

架构LNMP

目录 1.安装Nginx服务 2.安装 MySQL 服务 3.安装配置 PHP 解析环境 4.部署 Discuz&#xff01;社区论坛 Web 应用 1.安装Nginx服务 实验准备 systemctl stop firewalld systemctl disable firewalld setenforce 0 安装依赖包 yum -y install pcre-devel zlib-devel gcc…

JavaScript中的async await基本使用

目录 1. async await是什么2. 为什么会出现3. 需要怎么去使用4. 最终的结果解决什么5. 使用的注意点6. 常用的技巧 JavaScript中的async await是一种处理异步代码的语法糖&#xff0c;它可以让我们更加方便地处理异步操作&#xff0c;避免了回调地狱和Promise链式调用的问题。 …