Java大数运算BigInteger与进制转换详解

 更新时间:2023年09月23日 11:13:21   作者:little_fat_sheep  
这篇文章主要介绍了Java大数运算BigInteger与进制转换详解,Java 提供了 BigInteger(大整数)类和 BigDecimal(大浮点数)类用于大数运算,这两个类都继承自 Number 类(抽象类),由于 BigInteger 在大数运算中更常见,需要的朋友可以参考下

1 前言

Java 提供了 BigInteger(大整数)类和 BigDecimal(大浮点数)类用于大数运算,这两个类都继承自 Number 类(抽象类)。

由于 BigInteger 在大数运算中更常见,本博客只介绍 BigInteger,另外也介绍下 Java 内置的进制转换函数,非常好用!!!

2 BigInteger 常用方法

包:import java.math.BigInteger;

//初始化
public BigInteger(String val)
public BigInteger(byte[] val)
public static BigInteger valueOf(long val)
//四则运算
public BigInteger add(BigInteger val)  //加法
public BigInteger subtract(BigInteger val)  //减法
public BigInteger multiply(BigInteger val)  //乘法
public BigInteger divide(BigInteger val)  //除法(整除)
//取余(取模)
public BigInteger mod(BigInteger m)
public BigInteger remainder(BigInteger val)  
//其他基本运算
public BigInteger negate()  //取反
public BigInteger abs()  //绝对值
public BigInteger pow(int exponent)  //指数
public BigInteger max(BigInteger val)  //较大者
public BigInteger min(BigInteger val)  //较小者
public BigInteger gcd(BigInteger val)  //最大公约数
//判断与比较
public int compareTo(BigInteger val)  //比较大小
public boolean equals(Object x)  //判断是否相等
//十进制转换为其他进制
public byte[] toByteArray()  //转换为二进制数组
public String toString(int radix)  //转换为 radix 进制数,2<=radix<=36,否则令radix=10
//其他进制转换为十进制
public BigInteger(String val, int radix)  //将 radix 进制的val转换为十进制,2<=radix<=36,否则抛出NumberFormatException异常

3 Integer 类中进制转换

由于数字只能由 '0'-'9' 和 'a'-'z' 表示,因此最多只能是36进制。在进制转换时,经常会用到参数 radix (基数),表示进制数,因此 2<=radix<=36。当 radix 不在此区间时,若是十进制转换为 radix 进制,令 radix=10;若是 radix 进制转换为十进制,抛出NumberFormatException异常.

3.1 十进制转换为其他进制

public static String toBinaryString(int i)  将i转换为2进制
public static String toOctalString(int i)  将i转换为8进制
public static String toHexString(int i)  将i转换为16进制
public static String toString(int i, int radix)  将i转换为 radix 进制,2<=radis<=36,否则令radis=10

3.2 其他进制转换为十进制

//将 radix 进制数s转换为十进制,2<=radix<=36,否则抛出NumberFormatException异常
public static int parseInt(String s, int radix) throws NumberFormatException
public static Integer valueOf(String s, int radix) throws NumberFormatException

3.3 任意进制之间的转换

//将 m 进制数转换为 n 进制数
public static String transform(String s_m,int m,int n) {
    Integer tem=Integer.parseInt(s_m,m); //将m进制的s_m转换为10进制
    String s_n=Integer.toString(tem,n); //将tem转换为n进制
    return s_n;
}

到此这篇关于Java大数运算BigInteger与进制转换详解的文章就介绍到这了,更多相关Java的BigInteger与进制转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot异步实现的8种方式

    SpringBoot异步实现的8种方式

    异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,本文主要介绍了SpringBoot异步实现的8种方式,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • java String校招面试题过程详解

    java String校招面试题过程详解

    这篇文章主要介绍了java String校招面试题过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • SpringMVC中ModelAndView的使用及说明

    SpringMVC中ModelAndView的使用及说明

    这篇文章主要介绍了SpringMVC中ModelAndView的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Gson中的TypeToken与泛型擦除详情

    Gson中的TypeToken与泛型擦除详情

    这篇文章主要介绍了Gson中的TypeToken与泛型擦除详情,其Gson类提供了toJson()与fromJson()方法,分别用来序列化与反序列化,更多相关内容需要的朋友可以参考一下
    2022-09-09
  • Spring整合MyBatis图示过程解析

    Spring整合MyBatis图示过程解析

    这篇文章主要介绍了Spring整合MyBatis图示过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Spring Boot Jwts Token生成方法示例

    Spring Boot Jwts Token生成方法示例

    这篇文章主要为大家介绍了Spring Boot Jwts Token生成方法示例,非适合java初学者,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • springboot启动后卡住无日志的几种情况小结

    springboot启动后卡住无日志的几种情况小结

    这篇文章主要介绍了springboot启动后卡住无日志的几种情况小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java虚拟机JVM性能优化(三):垃圾收集详解

    Java虚拟机JVM性能优化(三):垃圾收集详解

    这篇文章主要介绍了Java虚拟机JVM性能优化(三):垃圾收集详解,本文讲解了众多的JVM垃圾收集器知识点,需要的朋友可以参考下
    2014-09-09
  • Java BeanUtils工具类常用方法讲解

    Java BeanUtils工具类常用方法讲解

    这篇文章主要介绍了Java BeanUtils工具类常用方法讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Java full gc触发情况实例解析

    Java full gc触发情况实例解析

    这篇文章主要介绍了Java full gc触发情况实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论