Java 進制的轉(zhuǎn)換
什么是進制?
進制也就是進位計數(shù)制,是人為定義的帶進位的計數(shù)方法(有不帶進位的計數(shù)方法,比如原始的結繩計數(shù)法,唱票時常用的“正”字計數(shù)法,以及類似的tally mark計數(shù))。 對于任何一種進制---X進制,就表示每一位置上的數(shù)運算時都是逢X進一位。 十進制是逢十進一,十六進制是逢十六進一,二進制就是逢二進一,以此類推,x進制就是逢x進位。
Java中常用4種進制的表示方法
二進制(binary):0,1,滿二進一。以0b或0B開頭。
十進制(decimal):0-9,滿10進1.
八進制(octal):0-7,滿8進1.以數(shù)字0開頭表示。
十六進制(hex):0-9和A-F,滿16進1。以0x或0X開頭表示。注意:A-F不區(qū)分大小寫。比如 0X12AB=0x12ab。

上圖是十進制0到17,對應于二進制,八進制,十六進制的表示。
?下面我們就來看一下,用代碼實現(xiàn)各個進制的互相轉(zhuǎn)換。四種進制的相互轉(zhuǎn)換,按照排列組合的計算規(guī)則,一共有12種轉(zhuǎn)化情況。有的朋友可能會考慮寫12個方法來實現(xiàn)這12種情況。未免會顯得代碼量太大了。這里我教大家另一種轉(zhuǎn)換的思路。取一個中間進制。比如十進制,其他進制的都轉(zhuǎn)換成10進制,然后10進制再轉(zhuǎn)換成其他進制。這樣 我們只需要寫6個方法就行了。
我們查看JavaApi文檔會發(fā)現(xiàn)這樣一個類:Integer類。里面提供了這樣三個方法:
toBinaryString(int i):十進制數(shù)轉(zhuǎn)換成無符號的二進制數(shù)。
toOctalString(int i):十進制數(shù)轉(zhuǎn)換成無符號的八進制數(shù)。
toHexString(int i):十進制數(shù)轉(zhuǎn)換成無符號的八進制數(shù)。
因此我們只需要寫三個方法,分別是二進制轉(zhuǎn)十進制,八進制轉(zhuǎn)十進制,十六進制轉(zhuǎn)10進制。注意:我們這里也是討論的無符號的轉(zhuǎn)換。如果是帶符號的,轉(zhuǎn)換規(guī)則跟這個是完全不一樣的,有興趣的可以自行研究。
01二進制轉(zhuǎn)十進制

公用方法,主要用來計算冪次方
public static Integer pow(int num1,int num2){
? ?Integer result = 1;
? ?for (int index=0;index<num2;index++){
? ? ? ?result *= num1;
? ?}
? ?return result;
}
02八進制轉(zhuǎn)十進制

03十六進制轉(zhuǎn)十進制

剩下的就是,將我們轉(zhuǎn)換成的十進制數(shù)再調(diào)用Integer類里面的三個方法,就可以轉(zhuǎn)換成我們想要的二進制,八進制,16進制數(shù)了。