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

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

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

03
十六進制轉十進制

剩下的就是,將我們轉換成的十進制數再調用Integer類里面的三個方法,就可以轉換成我們想要的二進制,八進制,16進制數了。