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的用法 的相关文章

随机推荐

  • 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