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。當 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)文章
Maven在Windows中的配置以及IDE中的項目創(chuàng)建實例
下面小編就為大家?guī)硪黄狹aven在Windows中的配置以及IDE中的項目創(chuàng)建實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09Spring框架開發(fā)IOC兩種創(chuàng)建工廠方法詳解
這篇文章主要介紹了Spring框架IOC兩種創(chuàng)建工廠方法詳解,文中附含詳細的代碼示例分別對靜態(tài)方法和實例方法創(chuàng)建工廠作了簡要的分析2021-09-09被kafka-client和springkafka版本坑到自閉及解決
這篇文章主要介紹了被kafka-client和springkafka版本坑到自閉及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03教你在?Java?中實現(xiàn)?Dijkstra?最短路算法的方法
這篇文章主要教你在?Java?中實現(xiàn)?Dijkstra?最短路算法的方法,在實現(xiàn)最短路算法之前需要先實現(xiàn)帶權(quán)有向圖,文章中給大家介紹的非常詳細,需要的朋友可以參考下2022-04-04volatile與happens-before的關(guān)系與內(nèi)存一致性錯誤
本文講了Java并發(fā)編程中volatile變量、happens-before與內(nèi)存一致性錯誤,下面來和小編一起學(xué)習下如何解決2019-05-05Java8中用foreach循環(huán)獲取對象的index下標詳解
這篇文章主要給大家介紹了關(guān)于Java8中用foreach循環(huán)獲取對象的index下標的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2021-04-04Java實現(xiàn)在線考試系統(tǒng)與設(shè)計(學(xué)生功能)
這篇文章主要介紹了Java實現(xiàn)在線考試系統(tǒng)與設(shè)計(學(xué)生功能),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02