Java大数运算BigInteger与进制转换详解
作者: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与进制转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!