Java大數(shù)運算BigInteger與進制轉(zhuǎn)換詳解
1 前言
Java 提供了 BigInteger(大整數(shù))類和 BigDecimal(大浮點數(shù))類用于大數(shù)運算,這兩個類都繼承自 Number 類(抽象類)。
由于 BigInteger 在大數(shù)運算中更常見,本博客只介紹 BigInteger,另外也介紹下 Java 內(nèi)置的進制轉(zhuǎn)換函數(shù),非常好用?。?!
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) //指數(shù) public BigInteger max(BigInteger val) //較大者 public BigInteger min(BigInteger val) //較小者 public BigInteger gcd(BigInteger val) //最大公約數(shù) //判斷與比較 public int compareTo(BigInteger val) //比較大小 public boolean equals(Object x) //判斷是否相等 //十進制轉(zhuǎn)換為其他進制 public byte[] toByteArray() //轉(zhuǎn)換為二進制數(shù)組 public String toString(int radix) //轉(zhuǎn)換為 radix 進制數(shù),2<=radix<=36,否則令radix=10 //其他進制轉(zhuǎn)換為十進制 public BigInteger(String val, int radix) //將 radix 進制的val轉(zhuǎn)換為十進制,2<=radix<=36,否則拋出NumberFormatException異常
3 Integer 類中進制轉(zhuǎn)換
由于數(shù)字只能由 '0'-'9' 和 'a'-'z' 表示,因此最多只能是36進制。在進制轉(zhuǎn)換時,經(jīng)常會用到參數(shù) radix (基數(shù)),表示進制數(shù),因此 2<=radix<=36。當(dāng) radix 不在此區(qū)間時,若是十進制轉(zhuǎn)換為 radix 進制,令 radix=10;若是 radix 進制轉(zhuǎn)換為十進制,拋出NumberFormatException異常.
3.1 十進制轉(zhuǎn)換為其他進制
public static String toBinaryString(int i) 將i轉(zhuǎn)換為2進制 public static String toOctalString(int i) 將i轉(zhuǎn)換為8進制 public static String toHexString(int i) 將i轉(zhuǎn)換為16進制 public static String toString(int i, int radix) 將i轉(zhuǎn)換為 radix 進制,2<=radis<=36,否則令radis=10
3.2 其他進制轉(zhuǎn)換為十進制
//將 radix 進制數(shù)s轉(zhuǎn)換為十進制,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 任意進制之間的轉(zhuǎn)換
//將 m 進制數(shù)轉(zhuǎn)換為 n 進制數(shù)
public static String transform(String s_m,int m,int n) {
Integer tem=Integer.parseInt(s_m,m); //將m進制的s_m轉(zhuǎn)換為10進制
String s_n=Integer.toString(tem,n); //將tem轉(zhuǎn)換為n進制
return s_n;
}到此這篇關(guān)于Java大數(shù)運算BigInteger與進制轉(zhuǎn)換詳解的文章就介紹到這了,更多相關(guān)Java的BigInteger與進制轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解析電子郵件的基本概念及JavaMail API郵件功能使用
這篇文章主要介紹了電子郵件的基本概念及JavaMail API郵件功能使用,包括用Java來發(fā)送郵件的示例,需要的朋友可以參考下2016-02-02
Java實現(xiàn)多級表頭和復(fù)雜表頭的導(dǎo)出功能
這篇文章主要為大家詳細介紹了Java實現(xiàn)多級表頭和復(fù)雜表頭的導(dǎo)出功能的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
通過實例了解Java Integer類和int的區(qū)別
這篇文章主要介紹了通過實例了解Java Integer類和int的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03
基于UncategorizedSQLException異常處理方案
這篇文章主要介紹了基于UncategorizedSQLException異常處理方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
MyBatis?SqlSession執(zhí)行流程小結(jié)
本文主要介紹了MyBatis?SqlSession執(zhí)行流程小結(jié),涵蓋動態(tài)代理、Executor、StatementHandler等組件,及參數(shù)處理、結(jié)果映射與緩存機制,感興趣的可以了解一下2025-05-05
淺談Java中Collection和Collections的區(qū)別
下面小編就為大家?guī)硪黄獪\談Java中Collection和Collections的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08

