Java之BigInteger的用法

2023-10-29

Java之BigInteger用法

BigInteger在Java中用于操作大整数,当一个数超过了Long表示的最大范围时就可以考虑使用BigInteger来操作。

BigInteger的使用方法很多,也可以用于进制转换的一些操作,本文记录了一些BigInteger的常用方法。


一、常用方法

方法名 作用
add(); 相加
subtract(); 相减
multipy(); 相乘
divide(); 相除
remainder(); 取余
pow(); n次方
abs(); 绝对值
negate(); 相反数
gcd(); 最大公约数
mod(); 相当于remainder
min(); 两者中的最小值
max(); 两者中的最大值
and(); 按位与
andNot(); 按位与非
not(); 当前大数的非
or(); 按位或
xor(); 按位异或
shiftLeft(); 当前大数左移n位
shiftRight(); 当前大数右移n位
bitLength(); 当前大数的二进制位数
compareTo(); 大数比较大小
		BigInteger number1 = new BigInteger("4324234132412");
        BigInteger number2 = new BigInteger("54323423423432");
        BigInteger result;
        number1 = number1.add(number2);
        number2 = number2.subtract(number1);
        number2 = number1.multiply(number2);
        number2 = number1.divide(number2);
        number2 = number2.remainder(number1);
        number2 = number2.pow(10);
        number2 = number2.remainder(number1);
        number2 = number2.gcd(number1);
        result = number2.min(number1);
        result = number2.and(number1);
        result = number2.or(number1);
        result = number2.andNot(number1);
        result = number2.not();
        result = number2.xor(number1);
        result = number2.shiftLeft(10);
        result = number2.shiftRight(6);
        BigInteger number3 = new BigInteger("10");
        System.out.println(number3.bitLength());
        System.out.println(number2);
        if (number1.compareTo(number2) > 0) {
            System.out.println("a > b");
        } else if (number1.compareTo(number2) < 0) {
            System.out.println("a < b");
        } else {
            System.out.println("a = b");
        }

二、进制转换

利用BigInteger的构造函数可以实现任意进制的转换。

		// 十进制转二进制
		String str1 = new BigInteger("100", 10).toString(2);
        System.out.println(str1);
		// 二进制转十进制
        String str2 = new BigInteger("1010101010111", 2).toString(10);
        System.out.println(str2);
		// 十六进制转八进制
        String str3 = new BigInteger("7E6A", 16).toString(8);
        System.out.println(str3);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java之BigInteger的用法 的相关文章

  • 将 Spring 的 @Scheduled 注解与特定执行器一起使用

    如何告诉我的 Spring 计划方法使用特定的执行器运行 例如 这是我的 spring 调度程序方法之一 Scheduled fixedRate 1000 public void scheduleJobs doThese 这是我的 Java
  • 范围内的春季活动可能吗?

    Spring 事件机制支持发布应用程序事件并通过 Spring 组件监听这些事件 EventListener注解 但是 我在 中找不到有关在特定范围内发送事件的任何信息文档 https docs spring io spring docs
  • 通过 Java Spring 构建 sitemap.xml [重复]

    这个问题在这里已经有答案了 我正在通过 Spring MVC 构建 sitemap xml XmlRootElement name urlset public class XmlUrlSet XmlElements XmlElement n
  • 合并两个 Jasper 报告

    我有一个带有下拉菜单的网络应用程序 用户可以从中选择报告可视化的类型 报告 1 报告 2 报告 3 等 根据所选的报告 Jasper 报告将在服务器上编译并以 PDF 格式的弹出窗口打开 在服务器端 我使用下面的代码以单独的方法实现每个报告
  • 如何在 Java 中通过 TLS v.1.2 创建安全的 TCP 连接

    我想通过 TLS v1 2 在两个系统之间创建通信 其中包含的信息是保密的 我想避免 https Web 服务调用 而直接想在 TCP 层执行消息交换 您能否建议如何实现此功能 以便我可以通过 TLS v1 2 安全地传输数据 EDIT 阅
  • 为什么在 Java 7 中使用方法重载时,自动装箱不会推翻可变参数?

    我们的 Java 项目中有一个 LogManager 类 如下所示 public class LogManager public void log Level logLevel Object args do something public
  • 计算两个 Java 日期实例之间的差异

    我正在使用Java的java util DateScala 中的类并想要比较Date对象和当前时间 我知道我可以使用 getTime 计算增量 new java util Date getTime oldDate getTime 然而 这只
  • SAP Spartacus 表单个性化

    如果已经有使用给定电子邮件注册的帐户 我需要修改注册表以显示错误消息 SAP Hybris 后端 Angular 中的 Spartacus 店面 目前 我有一个自定义验证器类 它可以正常工作 import org springframewo
  • 基本的 Swing 库? JGoodies,JFreeChart [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Gradle:找不到受信任的证书

    我正在尝试使用 Gradle 在 Ubuntu 服务器上构建我的 Android 项目 在我的 Windows 10 PC 上使用 Android Studio 构建工作正常 但使用 gradlew build or gradlew cle
  • 如何将报告导出为 PDF/A-1a、PDF/A-1b?

    在 jasper report 中生成 PDF A 包含许多陷阱 并且某些版本的 jasper report 不支持 这就是为什么我决定通过这个Question Answer 帖子 指示将带有图表的简单报告导出为 PDF A 所需的步骤和库
  • Android:从http获取文件并存储在SDCard中

    我已经遵循了许多类似问题中所写的内容 但仍然存在问题 从jsp我得到一个pdf 如果我转到URL 浏览器会自动打开pdf jsp页面会执行类似以下操作 Gets the pdf from the database BufferedInput
  • Java swing:为 JComboBox 实现我的 Combobox 模型

    我需要我的组合框包含组织的简称 问题是我can在下拉列表中查看组织名称 但是cant实际上选择它 我的错误在哪里 public class ToComboBoxModel extends AbstractListModel implemen
  • 如何用 JSON 表示数据库中的图像

    我需要基于数据库中的 blob 创建 JSON 为了获取 blob 图像 我使用下面的代码并在 json 数组中显示之后 Statement s connection createStatement ResultSet r s execut
  • Java ReentrantReadWriteLocks - 如何在读锁中安全地获取写锁?

    我现在在我的代码中使用可重入读写锁 http java sun com javase 6 docs api java util concurrent locks ReentrantReadWriteLock html同步对树状结构的访问 这
  • 单击按钮后更改 JPanel

    我正在为我的应用程序构建简单的 GUI 我有几个 JPanel 我想根据单击 JButton 执行的操作来显示它们 如何禁用一个 JPanel 并启用另一个 JPanel 几个细节 我有一个 JFrame 课程 我正在其中构建启动 gui
  • 如何在 spring-ws 中解析 SoapFaultClientException

    我正在使用 spring ws 2 3 1 在为 Web 服务创建客户端时 有时我得到SoapFaultClientException像下面这样
  • 从邮件服务器读取发送的邮件

    我知道如何从 INBOX 文件夹中检索邮件 但现在我想从 SENT ITEMS 文件夹中检索邮件 我正在使用 imap 检索数据 让我知道我应该在此函数中传递什么参数才能从 SENT ITEMS 文件夹中获取邮件Folder folder
  • jdbcAuthentication() 而不是 inMemoryAuthentication() 不提供访问权限 - Spring Security 和 Spring Data JPA

    我只是使用 spring mvc gradle spring security spring data jpa 创建简单的应用程序 现在我想测试 spring security 是如何工作的 但是我有一个问题 首先我向您展示一些代码 然后我
  • JavaFX - 当文本字段具有焦点时加速器不工作

    在我的应用程序中 我有一个使用加速器的屏幕 我正在使用功能键 F3 在我的应用程序中执行操作 它每次都工作正常 但是当我单击此屏幕上的任何文本字段时 功能键不会执行 这是我设置加速器的代码 scene getAccelerators put

随机推荐

  • python:解决pycharm运行py文件时只有unittest选项的方法

    有时候在编完脚本开始运行时 发现某个py脚本右键运行的选项不是run 二是run in unittest 试过很多方法都不能很好的去除 主要是因为脚本中含有test字符串 一种解决方法是将脚本中所有的函数和类的test字符串改为其他的 但是
  • 二维光子晶体带隙仿真Matlab完全程序_平面波展开法

    本程序为二维光子晶体Matlab仿真程序 该结果与文献 1 Molding the flow of light p68 figure 2相互吻合 主程序 This is a simple demo for Photonic Crystals
  • MinIO

    文章目录 安装 依赖 使用 下载地址 链接 https pan baidu com s 1V qK13gpddcnlq czc v3A 提取码 yyds 安装 docker run d p 9000 9000 p 9001 9001 nam
  • 【MySQL(一)】WAL 机制

    WAL全称是write ahead log 也就是更新数据之前先更新日志 之前不太明白为什么要用这个 也查了很多博客 发现很多都没说到根本原因上 基本的解释都是什么使用redo log恢复数据之类的 其实Mysql使用WAL的原因根本就不是
  • vue 不能监听对象属性的改变

    vue 不能监听对象属性的改变 需要重新赋值后才会渲染页面 div item div 方法 commonClick index this active index this active index
  • post和get的区别

    1 get是从服务器上获取数据 post是向服务器传送数据 2 get是把参数数据队列加到提交表单的ACTION属性所指的URL中 值和表单内各个字段一一对应 在URL中可以看到 post是通过HTTP post机制 将表单内各个字段与其内
  • 表驱动法(Table-Driven Methods)

    背景 表驱动方法是一种方案 它允许您在表中查找信息 而不是使用逻辑语句 if和 case 来查明信息 实际上 您可以使用逻辑语句选择的任何内容 都可以使用表进行选择 在简单情况下 逻辑语句更容易 更直接 随着逻辑链变得越来越复杂 表格变得越
  • shell中$(( )) 与 $( ) 还有${ }的区别

    http blog zol com cn 2322 article 2321763 html 与 反引号 在 bash shell 中 与 反引号 都是用来做命令替换用 command substitution 的 所谓的命令替换与我们第五
  • [改善Java代码]警惕泛型是不能协变和逆变的

    什么叫做协变 covariance 和逆变 contravariance 在变成语言的类型框架中 协变和逆变是指宽类型和窄类型在某种情况下 如参数 泛型 返回值 替换或交换的特性 简单的说 协变是用一个窄类型替换宽类型 而逆变则是用宽类型覆
  • 第三方依赖库 AG Grid调研分析

    AG Grid依赖 为实现页面表格的展示需求 进行的技术调研 官网地址 https www ag grid com GitHub地址 https github com ag grid ag grid 核心需求 1 大数据量的支持 AG Gr
  • rxjs: ReplaySubject, switchMap, merge,mergeMap

    ReplaySubject 记录 Observable 执行中的历史值并将其回放给新的订阅者 var subject new Rx ReplaySubject 3 参数 表示缓存几个历史数据 假如参数是5 也就是缓存5个值 订阅的时候可以收
  • CMake与Make

    大家都知道 写程序大体步骤为 1 用编辑器编写源代码 如 c文件 2 用编译器编译代码生成目标文件 如 o 3 用链接器连接目标代码生成可执行文件 如 exe 但如果源文件太多 一个一个编译时就会特别麻烦 于是人们想到 为什么不设计一种类似
  • 查找字符串中指定字符的第一个下标_代码的优雅写法

    刷 leetCode 有一个题目需要实现 String indexOf 的源代码 好奇之下在 Intellij IDEA 中查看了它的源代 意外地发现源码中关于在字符串中查找指定字符的下标的优雅代码 至少比我写的优雅 于是乎我打算开个贴记录
  • ASP.NET页面之间传递值的几种方式

    页面传值是学习asp net初期都会面临的一个问题 总的来说有页面传值 存储对象传值 ajax 类 model 表单等 但是一般来说 常用的较简单有QueryString Session Cookies Application Server
  • sony闪存卡/内存卡格式化修复工具

    索尼的USM formatterP工具用于格式化PhISOn主控的SONY闪存卡 修复内存卡无法格式化 使用时需要先备份所选分区上的所有数据 在格式化完成后数据将全部丢失 先选择要格式化的分区 再选择格式化的文件类型 sony闪存卡 内存卡
  • java 将天数转成月_java获取当月天数,指定年月的天数,指定日期获取对应星期(转)...

    分类 Java2012 12 25 23 52 3201人阅读 package com import java text SimpleDateFormat import java util Calendar import java util
  • 线程、多线程学习总结

    线程 多线程 1 基本概念 程序 线程 进程 1 1 程序 线程 进程 程序 一段静态代码 静态对象 进程 正在运行中的一个程序 线程 进程细化分为线程 作为调度和执行的单位 每个线程拥有独立的运行栈和程序计数器 并行 多个CPU同时执行多
  • SpringBoot从入门到精通---基础篇

    SpringBoot 一 基础篇 1 1 入手项目 注意 如果这里SpringBoot1Application 启动程序 是灰色的 你右键点击pom xml把它作为Maven项目就可以启动 BookController类中的代码 启动后访问
  • springboot @Autowired 注入为null 的原因与解决方式

    有时候我们在某个类用 Autowired 进行注入时 会发现注入参数为null 这时候会有疑惑 可能存在的原因 1 该类没有托管给spring 管理 一般在类的上面添加 Component 就可以了 2 你的这个类有被new出来的实例的 n
  • Java之BigInteger的用法

    目录 Java之BigInteger用法 一 常用方法 二 进制转换 Java之BigInteger用法 BigInteger在Java中用于操作大整数 当一个数超过了Long表示的最大范围时就可以考虑使用BigInteger来操作 Big