Java大数运算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与进制转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Maven在Windows中的配置以及IDE中的项目创建实例
下面小编就为大家带来一篇Maven在Windows中的配置以及IDE中的项目创建实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-09-09
被kafka-client和springkafka版本坑到自闭及解决
这篇文章主要介绍了被kafka-client和springkafka版本坑到自闭及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03
教你在 Java 中实现 Dijkstra 最短路算法的方法
这篇文章主要教你在 Java 中实现 Dijkstra 最短路算法的方法,在实现最短路算法之前需要先实现带权有向图,文章中给大家介绍的非常详细,需要的朋友可以参考下2022-04-04
volatile与happens-before的关系与内存一致性错误
本文讲了Java并发编程中volatile变量、happens-before与内存一致性错误,下面来和小编一起学习下如何解决2019-05-05
Java8中用foreach循环获取对象的index下标详解
这篇文章主要给大家介绍了关于Java8中用foreach循环获取对象的index下标的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-04-04


最新评论